结果是在运行easy_install
之前,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'
]
如果我import foo
从virtualenv内部导入foo-1.2。在
我有一个egg;它的安装文件将另一个egg作为依赖项列出,它的依赖项中有foo=1.2
。在
当我激活virtualenv并尝试运行python <my_egg>/setup.py develop
时,我得到一个错误:
我甚至修补了setuptools/command/easy_install.py
,以便在引发此异常的try
语句内打印sys.path
。路径是正确的,首先列出foo-1.2
,其次是foo-2.0
远处。在
我做错什么了?有没有办法让easy install忽略非virtualenv foo-2.0
安装,并接受virtualenv中的foo-1.2
?在
从我的蛋的sys.path
中删除setup.py
中的有问题的条目没有帮助。当sys.path
只包含foo
的正确版本时,该进程将失败并返回相同的错误。在
还有另一种可能发生这种情况的情况,除了你直接经历的那种情况,但很容易避免:
当设置一个新的virtualenv时,使用
no-site-packages
来避免包含系统Python安装中的库,除非您确定它们不会(也永远不会)冲突。在相关问题 更多 >
编程相关推荐