Users are getting "ImportError: No module named setuptools" when using pip to upgrade a package since distribute-0.7.3
was released.
e.g. when running a command like this: pip install --upgrade pyramid
To prevent the problem in _new_ environments (that aren't broken yet),
pip install -U setuptools
, pip install --upgrade pyramid
)To fix the problem once it's occurred, you'll need to manually install the new setuptools, then rerun the upgrade that failed.
ez_setup.py
(https://bitbucket.org/pypa/setuptools/downloads/ez_setup.py)python ez_setup.py
pip install --upgrade pyramid
)Also note that pip-1.4 (unreleased) has fixes to prevent this
distribute-0.7.3 is just an empty wrapper that only serves to require the new setuptools (setuptools>=0.7) so that it will be installed. (if you don't know yet, the "new setuptools" is a merge of distribute and setuptools back into one project)
distribute-0.7.3 does it's job well, when the upgrade is done in isolation. E.g. if you're currently on distribute-0.6.X, then running pip install -U setuptools
works fine to upgrade you to setuptools>=0.7.
The problem occurs when:
As part of the upgrade process, pip builds an install list that ends up including distribute-0.7.3 and setuptools>=0.7 , but they can end up being separated by other dependencies in the list, so what can happen is this:
Note that pip-1.4 (unreleased) has fixes to prevent this. distribute-0.7.3 (or setuptools>=0.7) by themselves cannot prevent this kind of problem.
Just ran into this installing supervisor via the Opscode recipe. Any workarounds?
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of pip install --upgrade supervisor ----
STDOUT: Downloading/unpacking supervisor
Running setup.py egg_info for package supervisor
Downloading/unpacking distribute from https://pypi.python.org/packages/source/d/distribute/distribute-0.7.3.zip#md5=c6c59594a7b180af57af8a0cc0cf5b4a (from supervisor)
Running setup.py egg_info for package distribute
Downloading/unpacking meld3>=0.6.5 (from supervisor)
Running setup.py egg_info for package meld3
Downloading/unpacking setuptools>=0.7 (from distribute->supervisor)
Running setup.py egg_info for package setuptools
Installing collected packages: supervisor, distribute, meld3, setuptools
Running setup.py install for supervisor
Skipping installation of /usr/local/lib/python2.7/dist-packages/supervisor/__init__.py (namespace package)
Installing /usr/local/lib/python2.7/dist-packages/supervisor-3.0b2-py2.7-nspkg.pth
Installing echo_supervisord_conf script to /usr/local/bin
Installing pidproxy script to /usr/local/bin
Installing supervisorctl script to /usr/local/bin
Installing supervisord script to /usr/local/bin
Found existing installation: distribute 0.6.49
Uninstalling distribute:
Successfully uninstalled distribute
Running setup.py install for distribute
Running setup.py install for meld3
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named setuptools
Complete output from command /usr/bin/python -c "import setuptools;__file__='/tmp/pip-build-root/meld3/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Q5i6NO-record/install-record.txt --single-version-externally-managed:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named setuptools
yes, see the solution section in the description.
Jannis asked us to work the text from the description into the docs to make it more likely to be found
added a cookbook entry for this:
https://github.com/pypa/pip/commit/1e9202a861028e268847deadae8681a6622cf922
En same error again!!!!!!!!!!!!!!!!!!!!
UBUNTU 15.10
python --version
Python 2.7.10
sudo pip install pip -I
...successfully installed pip-8.1.0
sudo pip install setuptools
...Sucessfully ..... setuptools-20.2.2
sudo pip install protobuf -I
...Could not ..
...
...
No module named extern
fixed by
apt-get install --reinstall python-setuptools
Most helpful comment
fixed by
apt-get install --reinstall python-setuptools