Я нахожусь в виртуальной среде, которая разделяет пакеты системного сайта (созданные с помощью 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. Таким образом, я не хочу переходить на полностью изолированный вен, у которого, конечно, не было бы вышеуказанной проблемы.
Любая подсказка будет принята с благодарностью! Большое спасибо!