精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

pipdeptree:清理依賴的大型項目工具

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-31 11:14 ? 次閱讀

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

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

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

1.安裝

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

pip install pipdeptree

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

2.用法和示例

pip freeze 和 pipdeptree 最大的區別如下:

# 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,提示了你哪些模塊會造成其依賴的模塊版本發生沖突,這是非常有用的提示,很多時候問題就出現在這里。

不僅如此,如果存在循環性依賴,比如:

**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,安裝GraphViz的教程可見這篇文章:Python 一鍵轉化代碼為流程圖。安裝完成后輸入以下命令:

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 試一下。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2672

    瀏覽量

    47344
  • 代碼
    +關注

    關注

    30

    文章

    4751

    瀏覽量

    68358
  • 虛擬環境
    +關注

    關注

    0

    文章

    27

    瀏覽量

    8925
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84461
收藏 人收藏

    評論

    相關推薦

    Python項目依賴管理

    之前一直比較抵觸用 Python ,很大一部分原因是覺得 Python 項目的環境管理比較混亂。Node.js 有 Npm 包管理工具,通過 package.json 配置項目依賴,最
    發表于 08-29 10:46 ?1004次閱讀

    Linux操作系統是同樣需要清理工具

      大家可能都聽說過Windows清理工具,無論是清理磁盤工具還是清理各種注冊表信息工具,其都能夠幫助我們恢復電腦的運行速度。但是對于Lin
    發表于 01-18 14:03

    大型項目外包合作

    本公司因業務需要 需要開發一套安卓的家庭安防系統信號終端 如有興趣者可以合作 公司和個人都可以合作 重慶地區的優先考慮合作 我QQ604573783
    發表于 05-21 16:54

    想學labview異步多線程,大型項目規范,各類通訊的找我

    想學labview異步多線程,大型項目規范,各類通訊的找我,qq***
    發表于 02-27 21:19

    用labview寫大型項目時,應該用什么架構寫能利于調試和維護?

    用labview寫大型項目時,應該用什么架構寫能利于調試和維護,麻煩各位給些建議,非常感謝
    發表于 03-05 16:52

    面向大型項目組織的Web工作流集成框架

    大型工程項目管理組織通常是由多個企業動態組成的企業聯合體,每個企業是在管理、技術、資源等方面有著自己鮮明行業特點的高度自治實體。本文采用有限狀態機作為工作流
    發表于 08-31 10:36 ?6次下載

    Windows冗余清理工具

    電子發燒友網站提供《Windows冗余清理工具.exe》資料免費下載
    發表于 06-03 14:21 ?1次下載

    管理與開發LabVIEW大型項目

    LabVIEW教學課件與源代碼,學習LabVIEW的很必要資料。
    發表于 12-14 17:44 ?83次下載

    如何在代碼編寫器Studio中處理大型項目詳細概述

    此應用報告檢查圍繞大型、多站點項目的問題。在代碼編寫器Studio中的開發,并提供了如何使用擴展的技術代碼編寫器工作室的特點,以解決這些問題。討論的一些特征使用源代碼控制和外部MaFag文件,以及可執行文件的符號調試內置,使用大量的項目
    發表于 04-25 09:20 ?2次下載
    如何在代碼編寫器Studio中處理<b class='flag-5'>大型項目</b>詳細概述

    區塊鏈在發展中國家設施大型項目中的意義

    區塊鏈技術能夠組織大量與一系列交易相關的細節,這對于管理整個發展中國家的基礎設施大型項目來說,可能是理想的選擇,就像我國的“一帶一路”計劃(Belt and Road Initiative)所涉及的那些項目一樣。
    發表于 08-10 14:28 ?1284次閱讀

    c盤清理工具

    本視頻主要詳細介紹了c盤清理工具,分別有百度衛士、360安全衛士、QQ電腦管家、金山衛士、清除上網痕跡(深度上網痕跡清理器)。
    的頭像 發表于 03-06 17:15 ?2499次閱讀

    大型項目中使用Cscope

    何其他大型項目但基本步驟都是相同的,這其中包括C + +或者Java項目. 下載源碼.首先得到的源代碼.你可以從http://www.kernel.org下載Linux內核源代碼.在后面
    發表于 04-02 14:36 ?361次閱讀

    Google刪除Chrome清理工具

    在 2015 年,Google 為了防止惡意軟件篡改 Chrome 瀏覽器,影響用戶正常上網、修改搜索結果、重定向到其他頁面,或者在用戶訪問的頁面中注入額外的廣告(非網站自身的廣告),推出了一個清理工具
    的頭像 發表于 03-15 16:53 ?562次閱讀

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

    你可能時常會遇到由于包的版本不匹配導致代碼報錯的問題,由于 pip freeze 將所有依賴項顯示為二維列表,這時候如果想找到這個錯誤版本的包是比較麻煩的事情。這時候,有個工具你必須得知道,它就
    的頭像 發表于 10-21 11:45 ?461次閱讀
    <b class='flag-5'>大型</b>Python<b class='flag-5'>項目</b><b class='flag-5'>依賴</b>樹如何一鍵理清

    Kondo-為開發者設計的磁盤清理工具

    kondo 是一款為開發者設計的磁盤清理工具,支持清理 16 種語言和工具鏈中的構建相關產物。
    的頭像 發表于 12-09 17:26 ?609次閱讀
    Kondo-為開發者設計的磁盤<b class='flag-5'>清理工具</b>