我在Windows Server 2008 R2计算机上全新安装了Python 3.3.4。我已成功在全球范围内安装了最新版本的Setuptools,Pip和Virtualenv:
python ez_setup.py
easy_install pip
pip install virtualenv
现在,当我尝试使用virtualenv ENV
设置virtualenv时,我得到以下堆栈跟踪:
New python executable in ENV\Scripts\python.exe
Installing setuptools, pip...
Complete output from command [path redacted]\ENV\Scripts\python.exe -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'pip'
----------------------------------------
...Installing setuptools, pip...done.
Traceback (most recent call last):
File "C:\Python33\lib\runpy.py", line 160, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "C:\Python33\lib\runpy.py", line 73, in _run_code
exec(code, run_globals)
File "C:\Python33\Scripts\virtualenv.exe\__main__.py", line 9, in <module>
File "C:\Python33\lib\site-packages\virtualenv.py", line 824, in main
symlink=options.symlink)
File "C:\Python33\lib\site-packages\virtualenv.py", line 992, in create_environment
install_wheel(to_install, py_executable, search_dirs)
File "C:\Python33\lib\site-packages\virtualenv.py", line 960, in install_wheel
'PIP_NO_INDEX': '1'
File "C:\Python33\lib\site-packages\virtualenv.py", line 902, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command [path redacted]\ENV\Scripts\python.exe -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1
我之前从未见过这个错误,堆栈跟踪对我没有任何意义。我可以从Python shell成功import pip
。任何人都可以帮我解决这个问题吗?
更新当我提供--system-site-packages
标记时,env会成功安装。
答案 0 :(得分:21)
对于遇到此问题的其他人来说,Python错误故障单的有用解决方法:
virtualenv venv --no-setuptools
或者,降级到3.3.3。这应该在3.3.5中正确修复
答案 1 :(得分:4)
令人讨厌的是,看起来这可能是一个Python错误。 https://github.com/pypa/virtualenv/issues/564引用http://bugs.python.org/issue20621,它仍处于打开状态,但看起来将在3.3.5中修复。
将我的Python安装放回3.3.3修复了问题。
答案 2 :(得分:1)
我使用 deactivate
命令停用了虚拟环境。然后我手动删除了虚拟环境文件夹并使用命令 python -m venv ./venv
重新创建它。这解决了我的问题。但是,这显然会删除您作为虚拟环境的一部分安装的所有软件包和模块 - 但如果缺少 pip,您可能还没有安装很多。
答案 3 :(得分:0)
我知道问题的底部会以粗体显示更新,但我和我的同事都想念您回答了您自己的问题。
因此,以防万一其他人可能会错过它,请尝试使用--system-site-packages
标志。这对我们有用:
virtualenv ENV --system-site-packages