簡體   English   中英

pip 凍結,不依賴已安裝的軟件包

[英]pip freeze without dependencies of installed packages

當我執行pip freeze我會得到我明確安裝的包以及那些依賴於這些包的包。

例如:

$ pip install fabric
...
$ pip freeze
Fabric==1.0.1
paramiko==1.7.6
pycrypto==2.3

好的,但后來我開始在另一個環境中使用pip install安裝這個 requirements.txt 我會得到相同的結果,刪除最后兩行。

所以我的問題是:我怎樣才能創建最簡化的 requirements.txt 而不顯示所有可計算的依賴項?

現在有(免責聲明:我做到了)。

您只需要從 PyPI 安裝pip-chill並從 Python 環境運行pip-chill

如果您喜歡冒險並且不想固定版本(或想使用 pip-compile),您可以使用pip-chill --no-version ,它會給您當前環境的最低要求。

https://github.com/rbanffy/pip-chill

沒有辦法用 pip 創建“最簡化的 requirements.txt”——我不知道在這種情況下你是否需要它。

所有包都放在 requirements.txt 中是很好的,因為您確定哪些依賴項版本適用於您的環境。

考慮 paramiko 得到更新,並打破向后兼容性:你會遇到問題。

pipdeptree是另一種選擇。

它生成完整的 requirements.txt(使用pipdeptree -f ),如下所示:

jupyter==1.0.0
  ipykernel==5.4.3
    ipython==7.19.0
      backcall==0.2.0
      decorator==4.4.2
      jedi==0.17.2
        parso==0.7.1

該文件有兩個用途:

  • 用作傳統的 requirements.txt 提供給pip install
  • 簡單地與grep '^\\w' requirements.txt一起用作開發人員友好的包列表(如由pip-chill創建的包列表)。

我認為刪除版本的簡單方法是在運行 pip freeze 后 cut -d"=" -f 1。

pip3 freeze | cut -d"=" -f1 

暫無
暫無

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

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