python - easy_install 'develop' 命令在 virtualenv 中无法工作

标签 python virtualenv easy-install

更新:

事实证明,virtualenv在运行之前没有正确初始化easy_install 。一旦这个问题得到纠正,事情就开始按预期进行。没有解决方案可以发布,因为所述问题一开始就不存在。 “当我激活 virtualenv 时” 步骤未正确执行(不要问),因此以下故障只是一种幻觉。

案件结案。

原始问题:

我有一个虚拟环境。在里面,sys.path看起来像这样:

[...,
 '/<inside_virtualenv>/lib/python2.6/site-packages/foo-1.2.egg',
 ...
 '/usr/local/lib/python2.6/dist-packages/foo-2.0.egg'
]

如果我import foo正如预期的那样,我从 virtualenv 内部导入了 foo-1.2。

我有一个鸡蛋;它的安装文件列出了另一个egg作为依赖项,该依赖项具有foo=1.2在其依赖项中。

当我激活 virtualenv 并尝试运行 python <my_egg>/setup.py develop 时,我收到错误:

Processing dependencies for <my egg>
Installed distribution foo 2.0 conflicts with requirement foo==1.2

我什至修补了setuptools/command/easy_install.py打印sys.path就在try里面引发此异常的语句。路径没问题,列出foo-1.2首先和foo-2.0遥遥领先的第二名。

我做错了什么?有没有办法让easy_install忽略非virtualenv foo-2.0安装并验收foo-1.2在虚拟环境中?

正在从 sys.path 中删除有问题的条目在我的鸡蛋里setup.py没有帮助。而sys.path仅包含 foo 的正确版本,该过程失败并出现相同的错误。

最佳答案

除了您直接遇到的情况之外,还有另一种可能发生这种情况的情况,但很容易避免:

设置新的 virtualenv 时,请使用 --no-site-packages 来避免包含系统 Python 安装中的库,除非您确定它们不会(也永远不会)发生冲突。

关于python - easy_install 'develop' 命令在 virtualenv 中无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339631/

相关文章:

python - 关于python虚拟环境的问题

python - 为什么无法从 pip 版本 6.1.1 升级到 8.1.1?

ubuntu - 在 Ubuntu 13.04 上安装 Scrapy 时出错

python - easy_install-3.2.exe 对比 easy_install.exe?

python - easy_install libmysqld-dev 错误 :'NoneType' 对象没有属性 'clone'

python - 创建 16 位 tiff 图像

Python请求以utf-8编码的响应但无法解码

python - 在 python 中使用 sklearn 为 n-gram 计算 TF-IDF

python - Python 3 中已排序字符串的所有不等子集

python - 使用来自 Homebrew 的 python 2.7.6 在 OS X 10.9.1 上运行 virtualenv 时遇到问题