Hi Liam,

                Sorry for the trouble. The cause is rooted in the latest updates to Setuptools and Distribute on PyPI which were launched today.

 

                I believe what’s happening here is pip is installing Distribute 0.7, which triggers the uninstallation of Distribute, but Distribute 0.7 (a compatibility wrapper) depends on a setuptools module to be in place to install.

 

                I’m unsure about the failed rollback. That looks like a separate issue in pip.


the simplest answer IMO is to not use pip to upgrade distribute/setuptools right now.
It was only working in python2 before now anyway.  (https://github.com/pypa/pip/issues/650)
pip is fundamentally dependent on setuptools to perform upgrades.
the best fix I think is to move faster on making pip "PEP439 compliant"
   - i.e. have pip be able to at least install from wheels w/o needing setuptools, which would remove the bootstrap headache
   - see https://github.com/pypa/pip/issues/863
   - this could likely involve pip replacing it's use of pkg_resources with distlib (https://github.com/pypa/pip/pull/909)

Marcus