Virtualenv 无法识别一台机器中已安装的软件包,尽管在另一台机器上工作



我有一台连接互联网的机器,运行Windows的计算机"A",我正在为非互联网连接的设备构建一个virtualenv(Python 3.7.2,venv 1.16.4(,计算机"B"也是Windows。virtualenv存在于 USB 设备上。将项目从USB复制到主机没有任何区别(我已经测试过了(。

virtualenv在"A"上工作,完全没有问题,但是在"B"上,即使在激活venv,它也无法识别pipnumpy,所以我无法"pip"任何东西,也无法在空闲时做import numpy......虽然 IDLE 确实运行。(同样,Numpy肯定已安装在virtualenv中。

cd <env project folder>
.envScriptsactivate # venv activates
py # launch IDLE
>>> import numpy
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'

然而我看到:

cd /env/Lib/site-packages/
ls 
    Directory: C:<path/to/site-packages>
Mode                  LastWriteTime        Length  Name
----                  -------------        ------  ----
d-----               <today's date>                numpy
d-----               <today's date>                numpy-1.16.4.dist-info

所以它应该有效。

谁能阐明我做错了什么?

如果您需要更具体的详细信息,请告诉我。

Python 没有打包到virtualenv中。机器"A"使用一个全局解释器,已经安装了许多全局包,而"B"使用自己的全局解释器,没有安装任何包。

此问题已通过使用新参数设置 virtualenv 来解决。

python -m virtualenv -p python env

相关内容

最新更新