Что означает" ошибка: опция --single-version-внешне управляемая не распознана"?

кажется, я внезапно начал сталкиваться с ошибкой error: option --single-version-externally-managed not recognized, когда pip installING пакеты varions (включая PyObjC и astropy). Я никогда не видел эту ошибку раньше, но теперь она также появляется на сборках travis-ci, для которых ничего не изменилось.

указывает ли эта ошибка на устаревшее распространение? Или какой-то неправильно заданный параметр в setup.py? Или что-то совсем другое?

6 ответов


Обновление:

установить последнюю версию setuptools. Если вы все еще получаете ошибку, установите wheel Как хорошо.

pip install -U setuptools
pip install -U wheel

Оригинальный Ответ / Подробнее:

--single-version-externally-managed - это опция, используемая для пакетов Python, указывающая модулю setuptools создать пакет Python, которым можно легко управлять менеджером пакетов хоста, если это необходимо, например Yum или Apt.

если вы видите это сообщение, у вас может быть старая версия setuptools или Python. Попробуйте использовать Distribute, который является более новой версией setuptools и обратно совместим. Эти пакеты могут ожидать, что у вас уже есть.

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

Edit: на данный момент distribute был объединен в main . Просто установите последнюю версию setuptools. Как указал @wynemo, вы можете использовать вместо этого, как это больше подходит для тех, кто выполняет ручную установку, где вы не собираетесь создавать системный пакет для распространения.


добавить --egg опции

pip install --egg SCons

Я использую pip версия 1.4.1


установка wheel решена эта проблема с недавним pip (я использовал 8.1.2):

pip install wheel

попробуйте обновить setuptools следующим образом:

pip install --upgrade setuptools


у меня была эта проблема. Оказалось, что это проблема с разрешениями на файл в моем кэше pip.

Если вы видите сообщение в самом начале вашего вывода pip, как

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

у вас может быть такая же проблема. Вы можете решить его, либо убедившись, что у вас есть соответствующие разрешения на файл в вашем кэше pip (что-то вроде chown -R $(whoami) /home/ubuntu/.cache/pip) или, если вы находитесь в UNIX, вы можете установить местоположение кэша pip с помощью XDG_CACHE_HOME env var в какую-то папку, которой вы владеете.


У меня есть эта проблема на моем macbook также, когда я пытаюсь обновить один пакет python. Я проверяю версию pip в OS X, она слишком старая: 1.1. Я использую follow cmd для обновления pip до 1.5.6

easy_install -U pip

затем эта ошибка исправлена.