python - 如何让 virtualenv 更喜欢它的本地库而不是全局库

标签 python virtualenv

我需要在没有 root 访问权限的大型服务器上使用 python。我想使用比机器上全局安装的更新版本的 numpy。 virtualenv正是为此目的而设计的,我创建了我的虚拟环境并使用以下命令激活它:

virtualenv my_personal_python
source my_personal_python/bin/activate

然后我安装我有兴趣使用的新版本的库

pip install numpy==1.6.0

问题是,当我现在导入 numpy 时,它仍然导入过时的全局版本,而不是虚拟环境中的 my_personal_python/lib/python2.6/site-packacges 中安装的版本。目录。

我已经知道一种可能的解决方案,即 --no-site-packages 标志,如下所示:

virtualenv --no-site-packages my_personal_python

当我使用这个标志时,导入会按照我的意愿进行。但我不想使用这个标志,因为我不想在本地重新安装所有包,我只想覆盖其中的几个。

(我使用的是python 2.6,virtualenv 1.6.1,我机器上的PYTHONPATH变量没有设置。)

更新即使我将虚拟环境中的 site-packages 目录添加到 python 路径的开头,numpy 也不会从这个位置导入(尽管其他包是从这个位置导入的) .也许这个问题是 numpy 特有的,一般不会出现在包中。

最佳答案

仔细检查几件事。

哪个python

哪个点

现在你确定你运行的是正确的,启动 python 并:

import sys
print "\n".join(sys.path)

然后退出 python 并输入 echo $PATH 后跟 echo $PYTHONPATH 我怀疑这个问题会很明显,如果你不能通过设置 PYTHONPATH 来解决它,那么你可以使用 site 模块来解决它。

关于python - 如何让 virtualenv 更喜欢它的本地库而不是全局库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6510034/

相关文章:

python - WSGIDaemonProcess 的 django apache 配置不起作用

python - 在 vim 中设置 python virtualenv

python - 如何告诉 VScode,在我运行 high Sierra 的 Mac 上使用哪个版本的 python

python - 理解 Matplotlib/PyQt 中的图形、坐标轴和绘图

python - 时间是 Python。它是如何工作的?

python - 如何在 scipy.optimize.minimize 上为 Powell 方法设置正确的方向向量?

python - 设置迭代顺序因运行而异

python - 抓取标签属性内的元素 - Scrapy

python - 如何在virtualenv中设置环境变量

python - 从 python 脚本中创建一个 virtualenv