欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python依賴管理那點(diǎn)事

系統(tǒng) 1739 0

文章目錄

      • pip
      • virtualenv
        • 缺點(diǎn)
      • Pipenv
      • 總結(jié)

學(xué)Python有段時(shí)間了,學(xué)的時(shí)候會(huì)想著拿它和Java對比。

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

pip

? 之前我曾寫過關(guān)于pip使用的,pip的基本使用。但如果在做項(xiàng)目時(shí),只會(huì)使用 pip intall 來管理包,用久了會(huì)發(fā)現(xiàn)各個(gè)項(xiàng)目的模塊雜揉到一起,很是混亂,還可能會(huì)導(dǎo)致各種奇怪的錯(cuò)誤,因?yàn)閜ip安裝好的模塊全都在一個(gè)全局的模塊庫中,無法實(shí)現(xiàn)項(xiàng)目間的依賴隔離。顯然,pip在包管理方面很好用,但在要隔離項(xiàng)目間的依賴,還需要使用別的工具,比如 virtualenv

virtualenv

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

缺點(diǎn)

  • 你可能得手動(dòng)安裝或刪除某些特定版本的包,并記得定期更新 requirements.txt 文件,以保持項(xiàng)目環(huán)境的一致。特別是當(dāng)你想要在你的虛擬環(huán)境中安裝Python包,但它不一定與項(xiàng)目本身相關(guān)聯(lián)的時(shí)候。
  • 此外,一些項(xiàng)目有時(shí)會(huì)保留 requirements.txt 文件的兩個(gè)版本——一個(gè)用于開發(fā)環(huán)境,一個(gè)用于生產(chǎn)環(huán)境,這可能會(huì)導(dǎo)致更多的復(fù)雜性。

Pipenv

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

下面是其主要優(yōu)勢:

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

總結(jié)

  • 如果需要將庫安裝到全局系統(tǒng),我們還是需要使用pip;
  • 管理項(xiàng)目依賴方面,pipenv是目前的終極解決方案;
  • 如果需要維護(hù)使用virtualenv的項(xiàng)目,也可以使用pipenv,因?yàn)榧嫒輛irtualenv,并且virtualenv項(xiàng)目可以方便地遷移到pipenv。

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 宝贝jojo第三季 | 欧美亚洲一区二区三区在线 | 免费一级毛片在线观看 | 日本三日本三级香港三级 | 欧美成人免费在线视频 | 午夜视频啪啪 | 久久久国 | 欧美视频99| 国产综合在线播放 | 四虎精品 | 加勒比精品久久一区二区三区 | 超97在线观看精品国产 | 午夜草逼 | 午夜免费| 亚洲伦理中文字幕 | 久久久久女人精品毛片 | 一级做a爱过程免费视频麻豆 | 又爽又黄axxx片免费观看 | 亚洲嗯啊 | 国产精品毛片久久久久久久 | 成人小视频在线观看免费 | 欧美高清网站 | 天天干夜夜夜 | 成人午夜亚洲影视在线观看 | a视频免费 | 欧美综合伊人久久 | 91p在线观看 | 日韩在线视频在线观看 | 国产11一12周岁女毛片 | 午夜爱爱爱爱爽爽爽网站免费 | 欧美一区二区三区免费视频 | 中文久久 | 国产成人a | 五月婷六月丁香狠狠躁狠狠爱 | 狠狠色狠狠色综合日日2019 | 午夜视频免费 成人 | 波多野衣结在线精品二区 | www.com黄色| 狠狠一区 | 黑色丝袜三级在线播放 | 色婷婷综合久久久中文一区二区 |