easy_install'development'命令无法在virtualenv中工作

时间:2012-04-26 18:55:07

标签: python virtualenv easy-install

更新

事实证明,在运行easy_install之前,virtualenv未正确初始化。一旦纠正,事情就会按照预期发挥作用。没有解决方案可以发布,因为首先不存在所述问题。 '当我激活virtualenv'步骤时没有正确采取(不要问),因此以下故障是一种错觉。

案件结案。

原始问题:

我有一个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'
]

如果我来自virtualenv中的import foo,我会按预期导入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.pysys.path语句中打印try,该语句引发了此异常。路径没问题,首先列出foo-1.2,然后列出foo-2.0秒。

我做错了什么?有没有办法让easy_install忽略非virtualenv foo-2.0安装并接受virtualenv中的foo-1.2

从我的鸡蛋sys.path内的setup.py中删除有问题的条目无济于事。虽然sys.path仅包含foo的正确版本,但该过程失败并出现相同的错误。

1 个答案:

答案 0 :(得分:2)

还有另一种可能发生这种情况的情况,超出了你直接遇到的情况,但很容易避免:

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