色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

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

你可能時常會遇到由于包的版本不匹配導致代碼報錯的問題,由于 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 試一下。

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

    關注

    117

    文章

    3806

    瀏覽量

    81708
  • 代碼
    +關注

    關注

    30

    文章

    4857

    瀏覽量

    69526
  • 虛擬環境
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8986
  • python
    +關注

    關注

    56

    文章

    4813

    瀏覽量

    85302
收藏 人收藏

    評論

    相關推薦

    Python項目依賴管理

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

    方便快捷:PADS的一鍵快捷功能:一鍵灌銅,一鍵檢查DRC

    傾情奉獻給大家,非常實用的快捷功能一鍵灌銅: [hide] [/hide]一鍵檢查連通性:[hide][/hide]一鍵檢查安全間距::[hide] [/hide]一鍵清除Error標
    發表于 11-07 15:06

    一鍵還原系統

    老毛桃一鍵 V2.0.12.5更新說明: 1、細節完善及處理已知的問題2、更新GRUB模塊,提高兼容性3、高級項“搜索”開放自定后綴,可搜索任何后綴的GHO還原4、些函數位置及變量調整5、完善1
    發表于 06-18 20:41

    【GoKit申請】一鍵電源管理系統

    申請理由:智能家居越來越流行,需要尋找一鍵解決家庭電源管理的方案,所以針對這種社會需要,設計一鍵式的家庭電源管理方案。以前進行過攝像頭,藍牙相關的
    發表于 09-22 09:55

    Stm32怎么一鍵下載

    文章目錄前言一鍵下載一鍵下載原理硬件原理圖跳帽與啟動存儲映射串口下載程序由來一鍵下載流程通過 USB 控制機器復位握手解讀前言最近在又要折騰 stm32 了,所以翻出了腳落里的開發板,先復習下
    發表于 08-05 08:13

    Stm32 一鍵下載電路詳解

    文章目錄前言一鍵下載一鍵下載原理硬件原理圖跳帽與啟動存儲映射串口下載程序由來一鍵下載流程通過 USB 控制機器復位握手解讀前言最近在又要折騰 stm32 了,所以翻出了腳落里的開發板,先復習下
    發表于 11-24 18:06 ?9次下載
    Stm32 <b class='flag-5'>一鍵</b>下載電路詳解

    docker compose一鍵打包部署項目的實踐

    【導讀】本文介紹了 docker compose 一鍵打包部署項目的實踐。
    的頭像 發表于 08-30 11:03 ?1686次閱讀

    Jenkins+docker+springboot一鍵自動部署項目

    本文章實現最簡單全面的Jenkins+docker+springboot 一鍵自動部署項目,步驟齊全,少走坑路。
    的頭像 發表于 09-14 09:30 ?1661次閱讀

    Jenkins+Docker一鍵自動化部署SpringBoot項目

    本文章實現最簡單全面的Jenkins+docker+springboot 一鍵自動部署項目,步驟齊全,少走坑路。
    的頭像 發表于 12-14 10:04 ?1016次閱讀

    Jenkins+Docker實現一鍵自動化部署項目

    本文章實現最簡單全面的Jenkins+docker+springboot 一鍵自動部署項目,步驟齊全,少走坑路。
    的頭像 發表于 01-06 15:36 ?1327次閱讀

    ApkAnalyser一鍵提取安卓應用APK敏感信息

    一鍵提取安卓應用中可能存在的敏感信息。使用Python開發,依賴于apkutils模塊,可執行文件使用pyinstaller打包。
    的頭像 發表于 03-31 10:45 ?1436次閱讀

    關于Jenkins+docker+springboot一鍵自動部署項目

    本文章實現最簡單全面的Jenkins+docker+springboot 一鍵自動部署項目,步驟齊全,少走坑路。
    的頭像 發表于 05-16 08:59 ?916次閱讀
    關于Jenkins+docker+springboot<b class='flag-5'>一鍵</b>自動部署<b class='flag-5'>項目</b>

    一鍵開關電路的好處?生活中的一鍵開關電路有哪些?

    一鍵開關電路的好處?生活中的一鍵開關電路有哪些? 一鍵開關電路是指個電路設計,可以用個按鈕或開關來控制多個電器或燈具的開關。
    的頭像 發表于 10-22 15:18 ?2551次閱讀

    變電站一鍵順控系統和開關柜一鍵順控有區別嗎?

    變電站一鍵順控系統和開關柜一鍵順控技術雖然都涉及到“一鍵順控”的概念,但它們在應用范圍和具體實現上有所不同,因此變電站一鍵順控系統和開關柜一鍵
    的頭像 發表于 07-31 13:34 ?779次閱讀
    變電站<b class='flag-5'>一鍵</b>順控系統和開關柜<b class='flag-5'>一鍵</b>順控有區別嗎?

    開關柜一鍵順控在一鍵停電、一鍵送電中的作用

    蜀瑞創新為大家科普,開關柜一鍵順控技術在一鍵停電和一鍵送電中發揮了快速響應、減少人為錯誤、提高安全性、簡化操作流程、降低操作風險、提高送電成功率等綜合優勢,對于提升電力系統的運行效率、安全性以及自動化水平具有重要意義。
    的頭像 發表于 02-27 09:13 ?116次閱讀
    主站蜘蛛池模板: 香蕉久久一区二区三区啪啪 | 内射无码AV-区二区在线观看 | 久久精品亚洲国产AV涩情 | 国产成人精选免费视频 | 欧美高清69hd | 日韩毛片在线视频 | 亚洲伊人久久大香线蕉综合图片 | 99视频免费看 | 久久综合久综合久久鬼色 | 国产午夜精品久久理论片小说 | 又亲又揉摸下面视频免费看 | 俄罗斯女人Z0Z0极品 | a在线免费观看视频 | 乱爱性全过程免费视频 | 国产欧美一区二区三区久久 | 男人天堂2018亚洲男人天堂 | 夜色视频社区 | 亚洲不卡视频在线 | 阴茎插入阴道 | 拍戏被CAO翻了H | 亚洲精品美女久久久久99 | 激情床戏揉胸吃胸视频 | 青青伊人国产 | 亚洲欧美日韩另类精品一区二区三区 | 国际老妇高清在线观看 | 亚洲 日本 天堂 国产 在线 | 免费观看成人毛片 | 116美女写真午夜电影z | 伦理片2499电影伦理片 | 第七色 夜夜撸 | 二级特黄绝大片免费视频大片 | 后式大肥臀国产在线 | 国产免费麻传媒精品国产AV | 日日摸夜夜添无码AVA片 | 婷婷激情综合色五月久久竹菊影视 | 久久黄色小视频 | 在线观看插女生免费版 | 特黄大片aaaaa毛片 | 99爱免费视频 | 免费在线观看黄色网址 | 精品亚洲国产成AV人片传媒 |