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

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條評論
主站蜘蛛池模板: 久久精品国产精品亚洲红杏 | 青青青在线视频 | 女人18特级一级毛片免费视频 | 精品综合久久久久久88小说 | 国产精品久久免费观看 | 亚洲精品一区二区中文 | 国产香蕉偷在线观看视频 | 色姑娘色综合 | 欧美精品成人一区二区在线观看 | 漂亮女大学一级毛片 | 99热99热| 久久国产亚洲欧美日韩精品 | 日本aaaaa级毛片| 在线观看国产一区二三区 | 久热免费在线观看 | 国产不卡网 | 欧美日韩激情在线 | 99热久久国产这里有只有精品 | 91孕妇精品一区二区三区 | 国产情侣久久精品 | 国产香蕉一区二区在线观看 | 你懂得在线网站 | 日本成人一区 | 婷婷亚洲国产成人精品性色 | 九九热精品免费 | 日本一级毛片无遮挡 | 99热在线精品观看 | 久久亚洲欧美 | 台湾成人性视频免费播放 | 天天操夜夜夜 | 丰满放荡岳乱妇91www | 久久精品日日躁精品 | 天天操人人射 | 九九热视频在线免费观看 | 亚洲欧洲成人 | 国产精品毛片天天看片 | 日韩综合一区 | 亚洲免费播放 | 免费在线精品视频 | 久久国产视频网站 | 91亚洲精品成人一区 |