事实证明,在运行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。
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
安装并接受virtualenv中的foo-1.2
?
从我的鸡蛋sys.path
内的setup.py
中删除有问题的条目无济于事。虽然sys.path
仅包含foo
的正确版本,但该过程失败并出现相同的错误。
答案 0 :(得分:2)
还有另一种可能发生这种情况的情况,超出了你直接遇到的情况,但很容易避免:
设置新的virtualenv时,请使用--no-site-packages
以避免在系统Python安装中包含库,除非您确定他们不会(并且永远不会)冲突。