Pip install needs.txt в venv: Как игнорировать пакеты системного сайта другой версии? - PullRequest
0 голосов
/ 03 апреля 2019

Я нахожусь в виртуальной среде, которая разделяет пакеты системного сайта (созданные с помощью venv в Python 3.5), и я хотел бы установить все пакеты в данном файле require.txt в этот venv. Общесистемная установка Python доступна только для чтения, поэтому я не могу ее изменить.

Теперь, например, мои списки require.txt, среди многих других,

SomePackage==2.0

как требование, в то время как системная установка уже содержит SomePackage-1.0. Таким образом, Pip пытается удалить SomePackage-1.0 для обновления до версии 2.0. Это, однако, не удается, поскольку общесистемная установка Python доступна только для чтения.

Есть ли способ запустить pip install -r requirements.txt таким образом, чтобы игнорировать установленные пакеты, если они имеют версию, отличную от требуемой, и просто устанавливать требуемую версию в venv?

Полагаю, это будет похоже на установку каждого пакета один за другим и использование --ignore-installed всякий раз, когда пакет уже присутствует в другой версии, отличной от требуемой. Это, однако, кажется довольно громоздким. Есть ли лучший способ?

Обратите внимание, что я использую venv с пакетами общего системного сайта, потому что я хочу избежать установки нескольких огромных пакетов каждый раз, когда создаю новый venv. Таким образом, я не хочу переходить на полностью изолированный вен, у которого, конечно, не было бы вышеуказанной проблемы.

Любая подсказка будет принята с благодарностью! Большое спасибо!

...