'Setting up a virtualenv: No module named 'pip'
I have a fresh install of Python 3.3.4 on a Windows Server 2008 R2 machine. I've successfully installed the latest versions of Setuptools, Pip and Virtualenv globally:
python ez_setup.py
easy_install pip
pip install virtualenv
Now when I try to set up a virtualenv using virtualenv ENV I get the following stack trace:
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
I've never seen this error before, and the stack trace doesn't make any sense to me. I can successfully import pip from a Python shell. Can anyone help me fix this?
Update The env installs successfully when I supply the --system-site-packages flag.
Solution 1:[1]
Useful workaround from the Python bug ticket for anybody else with this issue:
- Run
virtualenv venv --no-setuptools - Activate that virtualenv (venv\Scripts\activate)
- Download and run get-pip.py to manually install pip & setuptools into this virtualenv
- Continue as normal
Alternatively, downgrade to 3.3.3. This should be fixed properly in 3.3.5
Solution 2:[2]
I know it says Update in bold at the bottom of your question, but my colleague and I both missed that you answered your own question.
So, in case anyone else might miss it, try the --system-site-packages flag. This worked for us:
virtualenv ENV --system-site-packages
Solution 3:[3]
In my case the simply running the below command resolved the issue; however, this command cause the pip to roll back to the previous version.
python -m ensurepip --default-pip
Solution 4:[4]
I deactivated the virtual environment using deactivate command. And then I manually deleted the virtual environment folder and recreated it using the command python -m venv ./venv. This solved my problem. However, this will obviously delete all the packages and modules you installed as part of your virtual environment - but if pip is missing you probably haven't installed many.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Tim Perry |
| Solution 2 | emmagras |
| Solution 3 | Mukibul Hasan |
| Solution 4 | Cerberton |
