欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何一鍵理清大型Python項目依賴樹

 更新時間:2022年06月10日 10:45:03   作者:??Python編程學習圈????  
這篇文章主要介紹了如何一鍵理清大型Python項目依賴樹,文章圍繞主題相關資料展開詳細的內容介紹,感興趣的小伙伴可以參考一下

?前言:

你可能時常會遇到由于包的版本不匹配導致代碼報錯的問題,由于 pip freeze 將所有依賴項顯示為二維列表,這時候如果想找到這個錯誤版本的包是比較麻煩的事情。這時候,有個工具你必須得知道,它就是 pipdeptree.

pipdeptree 是一個命令行實用程序,它能用于以依賴關系樹可視化的形式顯示已安裝的python包。

它適用于全局安裝在計算機上的各個模塊,也適用于Virtualenv等虛擬環(huán)境中的模塊。

1.安裝

你只需要在你的環(huán)境中輸入以下命令就能安裝 pipdeptree:

pip?install?pipdeptree

已通過測試的Python版本:2.7,3.5,3.6,3.7,3.8,3.9.

2.用法和示例

pip freeze 和 pipdeptree 最大的區(qū)別如下:

# pip freeze 的顯示
$ pip freeze
Flask==0.10.1
itsdangerous==0.24
Jinja2==2.11.2
-e git+git@github.com:naiquevin/lookupy.git@cdbe30c160e1c29802df75e145ea4ad903c05386#egg=Lookupy
MarkupSafe==0.22
pipdeptree @?file:///private/tmp/pipdeptree-2.0.0b1-py3-none-any.whl
Werkzeug==0.11.2

可見,pip freeze 最多只能顯示一個依賴的列表,而在 pipdeptree ,每個模塊的依賴關系能夠非常直觀地展示出來:

$ pipdeptree
Warning!!! Possibly conflicting dependencies found:
* Jinja2==2.11.2
?- MarkupSafe [required: >=0.23, installed:?0.22]
------------------------------------------------------------------------
Flask==0.10.1
??- itsdangerous [required: >=0.21, installed:?0.24]
??- Jinja2 [required: >=2.4, installed:?2.11.2]
????- MarkupSafe [required: >=0.23, installed:?0.22]
??- Werkzeug [required: >=0.7, installed:?0.11.2]
Lookupy==0.1
pipdeptree==2.0.0b1
??- pip [required: >=6.0.0, installed:?20.1.1]
setuptools==47.1.1
wheel==0.34.2

請注意這個 Warning,提示了你哪些模塊會造成其依賴的模塊版本發(fā)生沖突,這是非常有用的提示,很多時候問題就出現在這里。

不僅如此,如果存在循環(huán)性依賴,比如:

CircularDependencyA => CircularDependencyB => CircularDependencyA

它會進行如下提示:

$ pipdeptree --exclude pip,pipdeptree,setuptools,wheel
Warning!!! Cyclic dependencies found:
- CircularDependencyA => CircularDependencyB => CircularDependencyA
- CircularDependencyB => CircularDependencyA => CircularDependencyB
------------------------------------------------------------------------
wsgiref==0.1.2
argparse==1.2.1

如果你想生成 requirements.txt,可以這么做:

$ pipdeptree -f | tee locked-requirements.txt
Flask==0.10.1
??itsdangerous==0.24
??Jinja2==2.11.2
????MarkupSafe==0.23
??Werkzeug==0.11.2
gnureadline==8.0.0
-e git+git@github.com:naiquevin/lookupy.git@cdbe30c160e1c29802df75e145ea4ad903c05386#egg=Lookupy
pipdeptree @ file:///private/tmp/pipdeptree-2.0.0b1-py3-none-any.whl
??pip==20.1.1
setuptools==47.1.1
wheel==0.34.2

在確認沒有沖突的依賴項后,甚至可以將其“鎖定”,其中所有包都將固定到其當前安裝的版本:

$?pipdeptree -f | sed?'s/ //g'?| sort -u > locked-requirements.txt

3. 可視化依賴樹

為了能夠可視化展示依賴樹,我們需要安裝GraphViz。安裝完成后輸入以下命令:

pipdeptree --graph-output png > dependencies.png

# pipdeptree --graph-output dot > dependencies.dot
# pipdeptree --graph-output pdf > dependencies.pdf
# pipdeptree --graph-output svg > dependencies.svg

支持四種格式的輸出,這里png的輸出效果如下:

效果是非常不錯的,大家如果有需要清理依賴的大型項目,可以用 pipdeptree 試一下。

到此這篇關于如何一鍵理清大型Python項目依賴樹的文章就介紹到這了,更多相關 Python依賴樹清理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 用python修改excel表某一列內容的操作方法

    用python修改excel表某一列內容的操作方法

    這篇文章主要介紹了用python修改excel表某一列內容的操作代碼,在實現過程中用到openpyxl這個庫,要生成隨機數就要有random這個庫,具體代碼跟隨小編一起看看吧
    2021-06-06
  • Python實現監(jiān)視程序的內存使用情況

    Python實現監(jiān)視程序的內存使用情況

    我們使用Python和它的數據處理庫套件進行大量數據處理時候,可能使用了大量的計算資源,那么如何監(jiān)視程序的內存使用情況就顯得尤為重要,下面我們就來了解一下具體實現方法吧
    2023-12-12
  • Python fileinput模塊如何逐行讀取多個文件

    Python fileinput模塊如何逐行讀取多個文件

    這篇文章主要介紹了Python fileinput模塊如何逐行讀取多個文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • 使用spyder3調試python程序的實現步驟

    使用spyder3調試python程序的實現步驟

    本文主要介紹了使用spyder3調試python程序的實現步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Python教程之生產者消費者模式解析

    Python教程之生產者消費者模式解析

    在并發(fā)編程中使用生產者和消費者模式能夠解決大不多的并發(fā)問題。該模式通過平衡生產線程和消費線程的工作能力來提高程序的整體處理數據的速度
    2021-09-09
  • Python正則表達式介紹

    Python正則表達式介紹

    本文介紹了Python對于正則表達式的支持,包括正則表達式基礎以及Python正則表達式標準庫的完整介紹及使用示例。本文的內容不包括如何編寫高效的正則表達式、如何優(yōu)化正則表達式,這些主題請查看其他教程
    2012-08-08
  • Python reques接口測試框架實現代碼

    Python reques接口測試框架實現代碼

    這篇文章主要介紹了Python reques接口測試框架實現代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • python實現凱撒密碼加密解密的示例代碼

    python實現凱撒密碼加密解密的示例代碼

    本文主要介紹了python實現凱撒密碼加密解密的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 如何使用pandas對超大csv文件進行快速拆分詳解

    如何使用pandas對超大csv文件進行快速拆分詳解

    Pandas是Python語言的一個擴展程序庫,提供高性能、易于使用的數據結構和數據分析工具,下面這篇文章主要給大家介紹了關于如何使用pandas對超大csv文件進行快速拆分的相關資料,需要的朋友可以參考下
    2022-07-07
  • Moviepy模塊實現視頻添加圖片水印

    Moviepy模塊實現視頻添加圖片水印

    本文主要介紹了Moviepy模塊實現視頻添加圖片水印,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04

最新評論