chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-21 11:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

它適用于全局安裝在計算機(jī)上的各個模塊,也適用于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 ,每個模塊的依賴關(guān)系能夠非常直觀地展示出來:

$ 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ā)生沖突,這是非常有用的提示,很多時候問題就出現(xiàn)在這里。

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

**CircularDependencyA => CircularDependencyB => CircularDependencyA **

它會進(jìn)行如下提示:

$ 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

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

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

3. 可視化依賴樹

為了能夠可視化展示依賴樹,我們需要安裝GraphViz,安裝GraphViz的教程可見這篇文章:Python 一鍵轉(zhuǎn)化代碼為流程圖。安裝完成后輸入以下命令:

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3826

    瀏覽量

    82967
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70719
  • 虛擬環(huán)境
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    9058
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86711
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Python項目依賴管理

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

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

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

    一鍵還原系統(tǒng)

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

    【GoKit申請】一鍵電源管理系統(tǒng)

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

    Stm32怎么一鍵下載

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

    Stm32 一鍵下載電路詳解

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

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

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

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

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

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

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

    Jenkins+Docker實現(xiàn)一鍵自動化部署項目

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

    ApkAnalyser一鍵提取安卓應(yīng)用APK敏感信息

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

    關(guān)于Jenkins+docker+springboot一鍵自動部署項目

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

    一鍵開關(guān)電路的好處?生活中的一鍵開關(guān)電路有哪些?

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

    變電站一鍵順控系統(tǒng)和開關(guān)柜一鍵順控有區(qū)別嗎?

    變電站一鍵順控系統(tǒng)和開關(guān)柜一鍵順控技術(shù)雖然都涉及到“一鍵順控”的概念,但它們在應(yīng)用范圍和具體實現(xiàn)上有所不同,因此變電站一鍵順控系統(tǒng)和開關(guān)柜一鍵
    的頭像 發(fā)表于 07-31 13:34 ?1326次閱讀
    變電站<b class='flag-5'>一鍵</b>順控系統(tǒng)和開關(guān)柜<b class='flag-5'>一鍵</b>順控有區(qū)別嗎?

    開關(guān)柜一鍵順控在一鍵停電、一鍵送電中的作用

    蜀瑞創(chuàng)新為大家科普,開關(guān)柜一鍵順控技術(shù)在一鍵停電和一鍵送電中發(fā)揮了快速響應(yīng)、減少人為錯誤、提高安全性、簡化操作流程、降低操作風(fēng)險、提高送電成功率等綜合優(yōu)勢,對于提升電力系統(tǒng)的運行效率、安全性以及自動化水平具有重要意義。
    的頭像 發(fā)表于 02-27 09:13 ?690次閱讀