亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python依賴管理那點事

系統 1665 0

文章目錄

      • pip
      • virtualenv
        • 缺點
      • Pipenv
      • 總結

學Python有段時間了,學的時候會想著拿它和Java對比。

  • 在對比的時候,發現 Java 有很成熟的項目構建工具,有使用 xml 的 Maven,也有使用 groovy 的 Gradle,這樣的構建工具能夠自動處理項目的依賴,很是方便。
  • 對于Python,在依賴管理方面,從一個初學者的角度看,嗯,只能說,貴圈真亂!(本文純屬個人觀點,不喜勿噴) 好吧,讓我們捋一捋。
    • 在包管理方面,聽說現在在役的包管理工具有 distutils、 setuptools、 distribute、 distlib、 pip,真讓人眼花繚亂。幸運的是,現在貌似有setuptools和pip就已經足夠了。
    • 在項目依賴隔離方面,Python主要使用虛擬環境,而關于虛擬環境的模塊,pyenv、 venv、 virtualenv、 virtualenvwrapper,也是叫人看到頭皮發麻!
    • 此外,很多 Python庫使用了 C/C++語言,即使 Python 只是一個小版本的更新,對應的庫也需要完全重新編譯一次,也就是說不同小版本的 Python 的依賴也不一定能兼容。
    • 還有就是版本問題(一直認為是個大坑!),很多時候,我們都希望能用一個工具來在兩個版本間靈活地切換,并分別管理它們的依賴。
  • 雖然存在眾多不足,但可以看到的是,Python依然在往好的方向發展,比如目前的終極解決方案pipenv,其出現讓Python的依賴管理逐漸優雅和簡單。下面來總結一下我覺得比較有用的依賴管理工具,希望可以讓和我一樣的初學者在依賴管理方面少走一些彎路。

pip

? 之前我曾寫過關于pip使用的,pip的基本使用。但如果在做項目時,只會使用 pip intall 來管理包,用久了會發現各個項目的模塊雜揉到一起,很是混亂,還可能會導致各種奇怪的錯誤,因為pip安裝好的模塊全都在一個全局的模塊庫中,無法實現項目間的依賴隔離。顯然,pip在包管理方面很好用,但在要隔離項目間的依賴,還需要使用別的工具,比如 virtualenv

virtualenv

在使用 virtualenv 處理項目依賴時,我們通常會使用 virtualenv 創建一個虛擬環境,再創建一個依賴包列表 requirements.txt ,然后他們可以使用 pip進行安裝。這種方法一般都會工作正常,但有時它會表現出一些怪異行為。下面是其使用時的一些缺陷。

缺點

  • 你可能得手動安裝或刪除某些特定版本的包,并記得定期更新 requirements.txt 文件,以保持項目環境的一致。特別是當你想要在你的虛擬環境中安裝Python包,但它不一定與項目本身相關聯的時候。
  • 此外,一些項目有時會保留 requirements.txt 文件的兩個版本——一個用于開發環境,一個用于生產環境,這可能會導致更多的復雜性。

Pipenv

不得不說,在項目包管理方面,Python確實存在不少的坑。直到Pipenv的出現,Python的依賴管理才逐漸變得優雅起來。Pipenv是官方推薦的的python包管理工具,它旨在將所有包管理工具(如bundler, composer, npm, cargo, yarn等)的優點集中應用于python領域。

下面是其主要優勢:

  1. 集成了pip,virtualenv兩者的功能,且完善了兩者的一些缺陷。
  2. 支持Python2 和 Python3,在各個平臺的命令都是一樣的。
  3. 過去用virtualenv管理requirements.txt文件可能會有問題,Pipenv使用Pipfile和Pipfile.lock,后者存放將包的依賴關系,查看依賴關系是十分方便。
  4. 各個地方使用了哈希校驗,無論安裝還是卸載包都十分安全,且會自動公開安全漏洞。
  5. 通過加載 .env 文件簡化開發工作流程。

總結

  • 如果需要將庫安裝到全局系統,我們還是需要使用pip;
  • 管理項目依賴方面,pipenv是目前的終極解決方案;
  • 如果需要維護使用virtualenv的項目,也可以使用pipenv,因為兼容virtualenv,并且virtualenv項目可以方便地遷移到pipenv。

最后, 個人建議,保持簡單,擁抱pipenv吧!
關于Pipenv的使用,可以看一下我的另一篇文章, Pipenv使用入門


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲人成绝费网站色ww | 58av国产精品 | 伊人影院在线视频 | 国产v视频 | 四虎永久免费网站免费观看 | 国产3344永久在线观看视频 | 在线亚洲精品国产成人二区 | 播五月| 欧美成人性色生活片天天看 | 日韩久久免费视频 | 青青久久99久久99久久999 | 深夜在线免费 | 欧美日本一本线在线观看 | 日本精品视频在线 | 亚洲天天综合网 | 国产精品第1页在线播放 | 国产一区二区高清 | 国产精品免费观看视频 | 国产成人香蕉在线视频网站 | 亚洲欧美日韩综合在线 | 精品视频一区二区三三区四区 | 亚洲精品欧美日韩 | 日本高清免费毛片久久看 | 国产美女午夜精品福利视频 | 精品免费福利视频 | 婷婷国产偷v国产偷v亚洲 | 四虎hu| 福利院肉动漫视频在线观看 | 久久久久久久一精品 | 亚洲欧美日韩综合在线 | 美女黄频网站 | 毛片网站免费在线观看 | 91在线视频播放 | 欧美综合亚洲图片综合区 | 综合图片亚洲 | 国产精品一区二区久久精品 | 日韩一级大毛片欧美一级 | 亚洲国产成人91精品 | 老司机亚洲精品 | 亚洲综合精品香蕉久久网 | a视频网站 |