可能剛開始學(xué)習(xí)Python時(shí),有人跟你說可以將源文件所在的文件夾添加到 這篇文章適用于所有類型的 Python 學(xué)習(xí)者,因?yàn)榧词鼓阒来嬖谔娲桨福搽y以掌握。 Python的工具鏈令人困惑,因?yàn)橛性S多軟件是相互依賴的,并且它們的關(guān)注點(diǎn)也有很多重疊。很難理解它們在 Python 編程體系中的定位。 出于這個原因,我決定列出最重要的工具,它們的使用場景和原因,以及它們解決了什么問題。我將嘗試用簡單的詞語解釋你應(yīng)該如何使用這些工具。如果我在本文中列出了某個工具,這意味著,作為一個Python程序員,你應(yīng)該至少知道它的存在。我將僅列出可應(yīng)用于任何項(xiàng)目或工作流的工具,每次啟動新項(xiàng)目時(shí)都應(yīng)考慮這些工具。這并不意味著您總是必須在每個項(xiàng)目中使用它們。在某些情況下,太多的工具很容易成為一種負(fù)擔(dān),并且難以維護(hù)。 SetuptoolsSetuptools是在Python中創(chuàng)建包的標(biāo)準(zhǔn)方法。它無處不在,有效并發(fā)揮了應(yīng)有的作用。
virtualenvVirtualenv是一個虛擬環(huán)境管理器。隔離的虛擬環(huán)境可以理解為“安裝了獨(dú)立包的Python版本。使用virtualenv意味著不需要(并且不應(yīng)該)使用系統(tǒng)默認(rèn)的python版本來安裝軟件包。
PipPip是Python最常用的包管理工具。它允許您獲取本地或遠(yuǎn)程包,并將它們安裝在虛擬環(huán)境或系統(tǒng)的Python中。
distutilsdistutils是setuptools的先驅(qū)。后者大量使用來自distutils的功能,因此很多情況下都會用到該工具。這不是你會直接選擇使用的工具,但你應(yīng)該知道它生態(tài)中的作用。 PypiPypi是Python Package Index的簡稱。它存儲了所有你可能會用到的Python庫。Pip就是從這里獲取構(gòu)建好的包。
PypiserverPypiserver是Pypi使用的Package Index API的一個實(shí)現(xiàn)。您可以用它來配置自己的代碼庫,例如為整個公司設(shè)置并在那里發(fā)布包,而不是公開發(fā)布。
PoetryPoetry是也是一個包管理系統(tǒng),可以取代setuptools,pip和一些建立在它們之上的工具。這個工具,是對Python打包系統(tǒng)的一次全面重構(gòu)嘗試。到目前為止,它得到了一些支持和很多積極的反饋,但它還遠(yuǎn)遠(yuǎn)沒有成為主流選擇。
PipenvPipenv和 Poetry 一樣,是一種以更加理智的方式構(gòu)建Python項(xiàng)目依賴關(guān)系和配置的工具。它通過
SphinxSphinx是構(gòu)建文檔的工具。它最初誕生的目的,是處理Python的文檔,但現(xiàn)在已經(jīng)成為了一個通用文檔工具。它仍然是Python項(xiàng)目最常見的文檔工具。
autodocautodoc是Sphinx的基本擴(kuò)展,允許從Python源代碼中生成restructuredText文件,其中包含每個類,函數(shù),模塊等的條目。
py.testpy.test在我看來是Python中最好的測試套件。它具有很多功能,但并非所有功能都得到充分的推廣,因此需要一些時(shí)間來發(fā)現(xiàn)該軟件支持的豐富可能性
HypothesisHypothesis是基于屬性的測試工具。簡單地說,它會根據(jù)你提供的規(guī)范生成隨機(jī)測試場景,直到找到導(dǎo)致測試失敗的情況。在開始使用此工具之前,請花點(diǎn)時(shí)間了解背后的原理。
toxtox本質(zhì)上是測試工作中的虛擬環(huán)境管理器。這意味著配置測試,讓其在一系列干凈,可自定義的虛擬環(huán)境中運(yùn)行,以確保代碼能夠在不同條件下工作。所有這些都不需要任何手動處理。
pyenvpyenv是一個python版本管理器。它旨在簡化開發(fā)人員處理多個版本時(shí)的本地工作流程。
PyScaffoldPyScaffold是一種以標(biāo)準(zhǔn)化方式初始化項(xiàng)目結(jié)構(gòu)的工具,并提供我們之前列出的一些工具,而無需手動配置它們。它支持高度定制。
flake8flake8是Python最常用的風(fēng)格檢查工具之一。它運(yùn)行不同的腳本來驗(yàn)證代碼是否符合Python的風(fēng)格指南要求(PEP-8)。
BlackBlack是一個自動代碼格式化工具。這意味著Black不會僅僅檢查您的代碼是否合規(guī),還會實(shí)際修改它以使其符合規(guī)范。
原文 | https:///chobeat/python-project-tooling-explained -- 完 -- 回復(fù)下方「關(guān)鍵詞」,獲取優(yōu)質(zhì)資源 回復(fù)關(guān)鍵詞「 pybook03」,立即獲取主頁君與小伙伴一起翻譯的《Think Python 2e》電子版 回復(fù)關(guān)鍵詞「pybooks02」,立即獲取 O'Reilly 出版社推出的免費(fèi) Python 相關(guān)電子書合集 回復(fù)關(guān)鍵詞「書單02」,立即獲取主頁君整理的 10 本 Python 入門書的電子版 印度小伙寫了套深度學(xué)習(xí)教程,Github上星標(biāo)已經(jīng)5000+ GitHub熱榜第四!這套Python機(jī)器學(xué)習(xí)課,免費(fèi)獲取還易吸收 如何系統(tǒng)化學(xué)習(xí) Python ? GitHub標(biāo)星2.6萬!Python算法新手入門大全 使用 Vue.js 和 Flask 實(shí)現(xiàn)全棧單頁面應(yīng)用 Python 實(shí)現(xiàn)一個自動化翻譯和替換的工具 題圖:pexels,CC0 授權(quán)。 |
|