pythonpipdistribute

What does "error: option --single-version-externally-managed not recognized" indicate?


I seem to have suddenly started to encounter the error error: option --single-version-externally-managed not recognized when using pip install with various packages (including PyObjC and astropy).

I've never seen this error before, but it's now also showing up on travis-ci builds for which nothing has changed.

Does this error indicate an out of date distribution?

Some incorrectly specified option in setup.py?

Something else entirely?


Solution

  • New Update:

    Install the latest version of setuptools. If you still get the error, install wheel as well.

    pip install -U setuptools
    pip install -U wheel
    

    Original Answer / More Details:

    --single-version-externally-managed is an option used for Python packages instructing the setuptools module to create a Python package which can be easily managed by the host's package manager if needed, like Yum or Apt.

    If you're seeing this message, you may have an old version of setuptools or Python. Try using Distribute, which is a newer version of setuptools and is backwards compatible. These packages may expect that you have it already.

    https://pypi.python.org/pypi/distribute

    Edit: At this point, distribute has been merged into the main setuptools project. Just install the latest version of setuptools. As @wynemo indicated, you may wish to use the --egg option instead, as it's more appropriate for those doing manual installations where you're not intending to create a system package for distribution.