Pip: ~ / .pip / pip.conf и конфликт virtualenv

Созданный на 2 окт. 2014  ·  5Комментарии  ·  Источник: pypa/pip

Мне не удалось найти нигде задокументированную проблему, но если вы укажете install-option в ~/.pip/pip.conf , она не будет отменена virtualenv . Я указываю --prefix=/path/to/somwhere в install-option из-за пользовательских ограничений на моем рабочем компьютере, и если он установлен, любые установки в venv (с включенным $PIP_RESPECT_VIRTUALENV ) по-прежнему устанавливаются по указанному пути автор: install-option . Для меня это не было ожидаемым поведением, но я не уверен, что игнорирование pip.conf является правильным курсом действий. Возможно, лучше всего задокументировать такое поведение. Еще одна странность заключается в том, что вы не можете удалить, находясь в virtualenv, поскольку пакет не установлен в venv, и pip не может его найти.

Это случилось со мной при использовании pip 1.4.1 и 1.5.6 и virtualenv 1.11.6.

virtualenv needs repro bug

Самый полезный комментарий

Мое текущее исправление - установить $PIP_CONFIG_FILE в /dev/null помощью virtualenvwrapper 's postactivate hook и отключить его в postdeactivate .

Все 5 Комментарий

Мое текущее исправление - установить $PIP_CONFIG_FILE в /dev/null помощью virtualenvwrapper 's postactivate hook и отключить его в postdeactivate .

Эта проблема все еще существует. В моем случае я бы хотел использовать --user installs, когда не в venv (установив это в ~/.config/pip/pip.conf , но "нормальные" (in-venv) установки, когда в venv (do --user installs имеет смысл даже в venv?).

Два возможных решения (из которых только первое действительно может быть реализовано с помощью pip, но я могу начать обсуждение здесь):

  • укажите расположение файла конфигурации, которое используется только вне venvs ( ~/.config/pip/pip-novenv.conf или что-то еще), или
  • сделать --user запретом на выполнение операций в venv (опять же, я не уверен, что --user + venv имеет смысл: есть только один ~/.local/lib/pythonX.Y так что там вся изоляция нарушена).

Проблема все еще присутствует в Python 3.5.3.

Довольно иронично и разочаровывающе, что если кто-то пытается быть осторожным со средой, вплоть до использования виртуальных сред и пользовательских установок в pip.conf, в итоге получается неработающая система.

Я пытался избежать использования членами команды sudo pip . Становится все труднее.

Разве это не ошибка в virtualenv - что он не устанавливает PIP_CONFIG_FILE=/dev/null при использовании какой-либо опции?
О, меня это укусило сегодня.

Может кто-нибудь дать четкие инструкции о том, как это воспроизвести?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги