【问题标题】:Global Modules are not available in VirtualEnv全局模块在 VirtualEnv 中不可用
【发布时间】:2016-12-08 22:18:59
【问题描述】:

我正在使用 WinPython 来处理 Scipy 等库。我无法在我的虚拟环境中安装它们,因为 blas/lapack 不可用。解决方案是使用已安装在我的虚拟环境中的系统上的模块(theano/scipy/numpy)。 这是我尝试过的:

打开控制台(cmd)

python
>>> import numpy

这行得通,现在创建虚拟环境

set VIRTUALENV_PYTHON=C:\WinPython-64bit-3.5.1.1\python-3.5.1.amd64\python.exe
set VIRTUALENV_EXTRA_SEARCH_DIR="C:\WinPython-64bit-3.5.1.1\python-3.5.1.amd64\libs C:\WinPython-64bit-3.5.1.1\python-3.5.1.amd64\Lib C:\WinPython-64bit-3.5.1.1\python-3.5.1.amd64\DLLs C:\WinPython-64bit-3.5.1.1\python-3.5.1.amd64\ C:\WinPython-64bit-3.5.1.1\python-3.5.1.amd64\Scripts"
virtualenv --system-site-packages -v --always-copy venv

或者简单地说:

virtualenv --system-site-packages venv

但无论我尝试什么,我都无法在输入 venv 时导入 numpy。

venv\Scripts\activate
python
>>> import numpy
ImportError: No module named 'numpy'

奇怪。所以我比较了venv里面的sys.path:

>>> sys.path
['', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\Scripts', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\DLLs', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\Lib', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\libs', 'C:\\Users\\user\\venv\\Scripts\\python35.zip', 'C:\\Users\\user\\venv\\DLLs', 'C:\\Users\\user\\venv\\lib', 'C:\\Users\\user\\venv\\Scripts', 'C:\\Users\\user\\venv', 'C:\\Users\\user\\venv\\lib\\site-pack
ages']

与原件(外):

>>> sys.path
['', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\Scripts', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\DLLs', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\Lib', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\libs', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\python35.zip', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\lib\\site-packages', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\lib\\site-packages\\win32', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\lib\\site-packages\\win32\\lib', 'C:\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\lib\\site-packages\\Pythonwin']

如您所见,并非所有条目都被复制了。为什么会这样?我该如何解决?

是的,我阅读了virtualenv --system-site-packages not using system site packages 并删除了我的 PYTHONPATH 变量,但问题仍然存在。

【问题讨论】:

    标签: python scipy virtualenv


    【解决方案1】:

    最终想通了。删除 PYTHONPATH 变量后,我没有重新启动。所以如果你有同样的问题:

    1. 删除您的 PYTHONPATH 环境。多变的。
    2. 重启!

    【讨论】:

      猜你喜欢
      • 2014-09-16
      • 2013-10-14
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      相关资源
      最近更新 更多