在virtualenv中运行pip时出现AttributeError
问题描述:
我最近使用自制软件将python从2.7.6升级到了2.7.9。然后我试图“revirtualise”的现有虚拟环境:在virtualenv中运行pip时出现AttributeError
sudo virtualenv -p python2.7 existingvenv
,但我得到这个错误:
Traceback (most recent call last):
File "venv.../bin/pip", line 7, in <module>
from pip import main
File "venv.../lib/python2.7/site-packages/pip/__init__.py", line 9, in <module>
from pip.log import logger
File "venv.../lib/python2.7/site-packages/pip/log.py", line 8, in <module>
from pip import backwardcompat
File "venv.../lib/python2.7/site-packages/pip/backwardcompat/__init__.py", line 66, in <module>
from urllib2 import URLError, HTTPError
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 93, in <module>
import hashlib
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 138, in <module>
_hashlib.openssl_md_meth_names)
AttributeError: 'module' object has no attribute 'openssl_md_meth_names'
----------------------------------------
...Installing setuptools, pip...done.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 2352, in <module>
main()
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 825, in main
symlink=options.symlink)
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 993, in create_environment
install_wheel(to_install, py_executable, search_dirs)
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 961, in install_wheel
'PIP_NO_INDEX': '1'
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 903, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /Users/robertelliott...hflow-app/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1
运行上面的活动虚拟环境内部的任何pip install x
时,我也得到了上面的错误。
$ virtualenv -p python2.7 newvenv
Running virtualenv with interpreter /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
New python executable in newenv/bin/python
Installing setuptools, pip...done.
有一个古老的符号链接或现有的virtualenv造成的问题,我怎么能解决这个里面的东西:
创建新的virtualenv时,我没有得到这个错误吗?
答
这是因为Python中的一个新功能,0.24轮不兼容。您将在Python 2.7系统安装下找到一个名为virtualenv_support
的文件夹,其中包含setuptools,pip和wheel的基本安装文件。有几个解决方案。最简单的方法是从virtualenv_support
文件夹中删除wheel-0.24 *。如果您想更进一步,您可以下载wheel.whl文件的0.26版本并将其替换。
答
你尝试:
sudo virtualenv --clear -p python2.7 existingvenv
?
为什么你不使用一个新的virtualenv?从现有的requirements.txt安装软件包 – Peter 2015-04-01 08:00:50