После использования virtualenv with pip off-and-on в течение нескольких дней я обнаружил, что версия PIP, которая используется после активации virtualenv, является глобальным PIP вместо PIP относительно этой среды; так что если вы не установите переменную среды оболочки export PIP_RESPECT_VIRTUALENV=true
, pip установит любой новый пакет (например, pip install argparse) в глобальную область, а не только в virtualenv.Системный PIP вместо virtualenv PIP по умолчанию?
Я ожидал бы, что PIP будет установлен на virtualenv по умолчанию, если этот virtualenv активирован.
Есть ли повод для этого не работает таким образом по умолчанию?
См. Пояснения here за то, как PIP_RESPECT_VIRTUALENV
работ.
FWIW: В virtualenvs я использую иметь свою собственную копию пип, которая устанавливает в этом virtualenv. – delnan
@ delnan Как они получают свою собственную копию пипса? – bitcycle
Последние версии (1.4 onward) of virtualenv должны автоматически устанавливать per env copy pip. Какую версию virtualenv вы используете? – philofinfinitejest