Совместить --пользователь --ошибка префикс с setup.py установите
Я пытался установить пакеты Python систему, к которой я недавно получил доступ. Я пытался воспользоваться относительно новым питоном на сайт пользователя-каталог пакетов, и новая опция --user. (Опция в настоящее время без документов, однако он существует для Python 2.6+; вы можете увидеть справку, запустив python setup.py install --help.)
когда я попытался запустить
python setup.py install --user
на любом пакете, который я загрузил, я всегда получал следующее ошибка:
error: can't combine user with with prefix/exec_prefix/home or install_(plat)base
ошибка была чрезвычайно озадачивающей, потому что, как вы можете видеть, я не предоставлял --prefix,--exec-prefix,--install-base или --install-platbase флаги как параметры командной строки. Я потратил много времени, пытаясь понять, в чем проблема. Я документирую свой ответ ниже, в надежде сэкономить какой-то другой бедной душе несколько часов Як бритья.
3 ответов:
один раз обходной путь:
pip install --user --install-option="--prefix=" <package_name>или
python setup.py install --user --prefix=обратите внимание, что нет текста (даже пробелов) после
=.Do не забыть
--userфлаг.установка нескольких пакетов:
создать
~/.pydistutils.cfg(или эквивалент для вашей ОС / платформы) со следующим содержанием:[install] prefix=обратите внимание, что нет текста (даже пробелов) после
=.затем запустите необходимое
pip install --userилиpython setup.py install --userкоманды. Делай не забыть--userфлаг.наконец, удалите или переименуйте этот файл. Оставляя этот файл присутствует вызовет проблемы при установке пакетов Python в масштабах всей системы (т. е., без
--user) как этот пользователь с этим~/.pydistutils.cfg.причина этой проблемы
это, кажется, проблема с OpenSUSE и RedHat, что привело к ошибка в виртуальное окружение на этих платформах.
ошибка происходит от системного уровня файл конфигурации distutils (в моем случае
/usr/lib64/python2.6/distutils/distutils.cfg) где это было[install] prefix=/usr/localв принципе, это эквивалентно всегда запускать команду install как
install --prefix=/usr/local. Вы должны переопределить эту спецификацию, используя один из методов выше.
публикация, чтобы сэкономить время других, так как никакие доступные ответы не работали для меня...
в некоторых средах, используя
--target(-t) переключатель все равно попадет в ту же ошибку. В моем тестировании на двух вариантах linux, я столкнулся с той же проблемой при использовании
Comments