PHP 8.2.30
Preview: distribute_setuptools.rst Size: 2.48 KB
//opt/alt/python33/share/doc/alt-python33-pip/docs/distribute_setuptools.rst

:orphan:

"ImportError: No module named setuptools"
+++++++++++++++++++++++++++++++++++++++++

Although using ``pip install --upgrade setuptools`` to upgrade from distribute
to setuptools works in isolation, it's possible to get "ImportError: No module
named setuptools" when using pip<1.4 to upgrade a package that depends on
setuptools or distribute.

e.g. when running a command like this:  `pip install --upgrade pyramid`

Solution
~~~~~~~~

To prevent the problem in *new* environments (that aren't broken yet):

* Option 1:

 * *First* run `pip install -U setuptools`,
 * *Then* run the command to upgrade your package (e.g. `pip install --upgrade pyramid`)

* Option 2:

 * Upgrade pip using :ref:`get-pip <get-pip>`
 * *Then* run the command to upgrade your package (e.g. `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.

1. Download `ez_setup.py` (https://bitbucket.org/pypa/setuptools/downloads/ez_setup.py)
2. Run `python ez_setup.py`
3. Then rerun your upgrade (e.g. `pip install --upgrade pyramid`)


Cause
~~~~~

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 its 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:

1. you are currently using an older distribute (i.e. 0.6.X)
2. and you try to use pip to upgrade a package that *depends* on setuptools or
   distribute.

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:

1.  pip uninstalls the existing distribute
2.  pip installs distribute-0.7.3 (which has no importable setuptools, that pip
    *needs* internally to function)
3.  pip moves on to install another dependency (before setuptools>=0.7) and is
    unable to proceed without the setuptools package

Note that pip v1.4 has fixes to prevent this.  distribute-0.7.3 (or
setuptools>=0.7) by themselves cannot prevent this kind of problem.


.. _setuptools: https://pypi.python.org/pypi/setuptools
.. _distribute: https://pypi.python.org/pypi/distribute

Directory Contents

Dirs: 1 × Files: 11

Name Size Perms Modified Actions
reference DIR
- drwxr-xr-x 2024-03-03 22:37:39
Edit Download
107 B lrw-r--r-- 2014-05-17 02:19:02
Edit Download
113 B lrw-r--r-- 2014-05-17 02:19:02
Edit Download
4.35 KB lrw-r--r-- 2014-05-17 02:19:02
Edit Download
2.48 KB lrw-r--r-- 2014-05-17 02:18:55
Edit Download
525 B lrw-r--r-- 2014-05-17 02:19:02
Edit Download
1.94 KB lrw-r--r-- 2014-05-17 02:19:02
Edit Download
139 B lrw-r--r-- 2014-05-17 02:18:55
Edit Download
71 B lrw-r--r-- 2014-05-17 02:18:55
Edit Download
1021 B lrw-r--r-- 2014-05-17 02:18:55
Edit Download
123 B lrw-r--r-- 2014-05-17 02:19:02
Edit Download
15.06 KB lrw-r--r-- 2014-05-17 02:19:02
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).