簡體   English   中英

venv中的pip install requirements.txt:如何忽略不同版本的系統站點包?

[英]Pip install requirements.txt in venv: How to ignore system site packages of different version?

我在共享系統站點包(在 Python 3.5 中使用venv創建)的虛擬環境中,我想將給定 requirements.txt 中的所有包安裝到這個 venv 中。 系統范圍的python安裝是只讀的,所以我不能修改它。

現在,例如,我的 requirements.txt 列出了許多其他內容,

SomePackage==2.0

根據要求,而系統安裝已經包含SomePackage-1.0 Pip 因此嘗試卸載SomePackage-1.0以升級到版本 2.0。 但是,這會失敗,因為系統范圍的 python 安裝是只讀的。

有沒有辦法運行pip install -r requirements.txt以忽略已安裝的軟件包,如果它們的版本與所需的版本不同,而只是將所需的版本安裝到 venv 中?

我想這類似於一個一個地安裝每個包並在包已經存在於與所需版本不同的版本中時使用--ignore-installed 然而,這似乎相當麻煩。 有沒有更好的辦法?

請注意,我將 venv 與共享系統站點包一起使用,因為我想避免每次創建新 venv 時都安裝幾個巨大的包。 因此,我不想切換到完全隔離的 venv,這當然不會有上述問題。

任何提示將不勝感激! 非常感謝!

要僅列出 venv 中項目所需的包,而不是計算機中的所有全局包,首先必須激活 virtualenv,然后從 (env)運行pip freeze > requirements.txt命令。

因此,您將嚴格列出指定項目所需的包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM