免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python 開發(fā)工具鏈全解

可能剛開始學習Python時,有人跟你說可以將源文件所在的文件夾添加到 PYTHONPATH 環(huán)境變量中,然后可以從其他位置導入此代碼。在大多數情況下,這個人常常忘記補充這是一個非常糟糕的主意。有些人在互聯網上發(fā)現了這一點,其他人卻要看自己付出代價后才意識到。還有太多人(特別是非程序員)真的相信除此外沒有別的辦法了。

這篇文章適用于所有類型的 Python 學習者,因為即使你知道存在替代方案,也難以掌握。 Python的工具鏈令人困惑,因為有許多軟件是相互依賴的,并且它們的關注點也有很多重疊。很難理解它們在 Python 編程體系中的定位。

出于這個原因,我決定列出最重要的工具,它們的使用場景和原因,以及它們解決了什么問題。我將嘗試用簡單的詞語解釋你應該如何使用這些工具。如果我在本文中列出了某個工具,這意味著,作為一個Python程序員,你應該至少知道它的存在。我將僅列出可應用于任何項目或工作流的工具,每次啟動新項目時都應考慮這些工具。這并不意味著您總是必須在每個項目中使用它們。在某些情況下,太多的工具很容易成為一種負擔,并且難以維護。

Setuptools

Setuptools是在Python中創(chuàng)建包的標準方法。它無處不在,有效并發(fā)揮了應有的作用。

  • 用途:從源代碼構建egg,zip或wheel文件,為項目定義元數據,以結構化和標準化的方式共享代碼

  • 場景:基本上每次你想編寫應該運行在其他機器上的代碼時

  • 替代品: Poetry, Flit

virtualenv

Virtualenv是一個虛擬環(huán)境管理器。隔離的虛擬環(huán)境可以理解為“安裝了獨立包的Python版本。使用virtualenv意味著不需要(并且不應該)使用系統(tǒng)默認的python版本來安裝軟件包。

  • 用途:保持依賴關系分離,在同一系統(tǒng)中支持多個python版本,輕松移動依賴關系

  • 場景:想寫代碼時,想使用不同于默認版的Python版本時

  • 替代品: Docker或同等產品

Pip

Pip是Python最常用的包管理工具。它允許您獲取本地或遠程包,并將它們安裝在虛擬環(huán)境或系統(tǒng)的Python中。

  • 用途:安裝和卸載軟件包,跟蹤正在使用的軟件包的版本

  • 場景:任何時候都可以使用

  • 替代品:詩歌,康達

distutils

distutils是setuptools的先驅。后者大量使用來自distutils的功能,因此很多情況下都會用到該工具。這不是你會直接選擇使用的工具,但你應該知道它生態(tài)中的作用。

Pypi

Pypi是Python Package Index的簡稱。它存儲了所有你可能會用到的Python庫。Pip就是從這里獲取構建好的包。

  • 用途:發(fā)布代碼

  • 場景:要公開發(fā)布包時

Pypiserver

Pypiserver是Pypi使用的Package Index API的一個實現。您可以用它來配置自己的代碼庫,例如為整個公司設置并在那里發(fā)布包,而不是公開發(fā)布。

  • 用途:組織內部共享代碼

  • 場景:代碼不應公開,希望擁有控制權

  • 替代方案:Warehouse(Pypi使用的庫),djangopypi

Poetry

Poetry是也是一個包管理系統(tǒng),可以取代setuptools,pip和一些建立在它們之上的工具。這個工具,是對Python打包系統(tǒng)的一次全面重構嘗試。到目前為止,它得到了一些支持和很多積極的反饋,但它還遠遠沒有成為主流選擇。

  • 用途:處理和分發(fā)包,管理依賴項

  • 場景有一個新項目而且不怕使用相對小眾的工具

  • 替代方案: Pipenv

Pipenv

Pipenv和 Poetry 一樣,是一種以更加理智的方式構建Python項目依賴關系和配置的工具。它通過 Pipfile,管理項目的依賴關系,并確保一致性和易用性。

  • 用途:處理和分發(fā)包,管理依賴關系

  • 場景:想嘗試類似 Poetry 的工具,但希望引起更少的問題

  • 替代方案:Poetry

Sphinx

Sphinx是構建文檔的工具。它最初誕生的目的,是處理Python的文檔,但現在已經成為了一個通用文檔工具。它仍然是Python項目最常見的文檔工具。

  • 用途:根據reStructuredText文件,生成PDF或HTML文檔

  • 場景:希望為項目提供外部文檔,API和代碼

  • 替代方案: Docutils,Doxygen

autodoc

autodoc是Sphinx的基本擴展,允許從Python源代碼中生成restructuredText文件,其中包含每個類,函數,模塊等的條目。

  • 用途:記錄代碼或API

  • 場景:可能每次使用Sphinx進行項目時

  • 替代方案: autosummary

py.test

py.test在我看來是Python中最好的測試套件。它具有很多功能,但并非所有功能都得到充分的推廣,因此需要一些時間來發(fā)現該軟件支持的豐富可能性

  • 用途:測試代碼

  • 場景:什么場景下都需要用的,別犯懶

  • 替代方案: unittest,nose

Hypothesis

Hypothesis是基于屬性的測試工具。簡單地說,它會根據你提供的規(guī)范生成隨機測試場景,直到找到導致測試失敗的情況。在開始使用此工具之前,請花點時間了解背后的原理。

  • 用途:測試代碼,尤其是數據處理

  • 場景:需要使用各種輸入數(數字,字符串,結構化數據)測試復雜邏輯時

tox

tox本質上是測試工作中的虛擬環(huán)境管理器。這意味著配置測試,讓其在一系列干凈,可自定義的虛擬環(huán)境中運行,以確保代碼能夠在不同條件下工作。所有這些都不需要任何手動處理。

  • 用途:需要在不同條件和環(huán)境中運行的代碼。對CI也很有用。

  • 場景:代碼需要支持不同的Python版本,在不同的環(huán)境和不同的操作系統(tǒng)中運行

  • 替代方案: bash scrips,CI pipeline

pyenv

pyenv是一個python版本管理器。它旨在簡化開發(fā)人員處理多個版本時的本地工作流程。

  • 用途:運行支持不同python版本的項目

  • 場景:需要使用系統(tǒng)python版本,但是卻安裝了很多種時

  • 替代品:手動管理,virtualenv,Poetry,Pipenv

PyScaffold

PyScaffold是一種以標準化方式初始化項目結構的工具,并提供我們之前列出的一些工具,而無需手動配置它們。它支持高度定制。

  • 用途:初始化項目;有多個項目,需要統(tǒng)一的工具和結構

  • 場景:各種場景都可以使用(只要你熟悉工具,不要在緊急情況下去嘗試新工具)

  • 替代方案: python-project-template,Cookiecutter

flake8

flake8是Python最常用的風格檢查工具之一。它運行不同的腳本來驗證代碼是否符合Python的風格指南要求(PEP-8)。

  • 用途:驗證并保證項目中良好的代碼風格

  • 每次您的項目需要被某人閱讀時,包括您自己

  • 替代方案: pylint

Black

Black是一個自動代碼格式化工具。這意味著Black不會僅僅檢查您的代碼是否合規(guī),還會實際修改它以使其符合規(guī)范。

  • 用途:自動格式化代碼

  • 場景:愿意放棄手動控制代碼風格

  • 替代方案: autopep8,yapf

原文 | https://write.as/chobeat/python-project-tooling-explained

-- 完 --

回復下方「關鍵詞」,獲取優(yōu)質資源

回復關鍵詞「 pybook03」,立即獲取主頁君與小伙伴一起翻譯的《Think Python 2e》電子版

回復關鍵詞「pybooks02」,立即獲取 O'Reilly 出版社推出的免費 Python 相關電子書合集

回復關鍵詞「書單02」,立即獲取主頁君整理的 10 本 Python 入門書的電子版

印度小伙寫了套深度學習教程,Github上星標已經5000+

GitHub熱榜第四!這套Python機器學習課,免費獲取還易吸收

《流暢的 Python》到底好在哪?

如何系統(tǒng)化學習 Python ?

GitHub標星2.6萬!Python算法新手入門大全

使用 Vue.js 和 Flask 實現全棧單頁面應用

Python 實現一個自動化翻譯和替換的工具

使用 Python 制作屬于自己的 PDF 電子書

12步輕松搞定Python裝飾器

200 行代碼實現 2048 游戲

題圖:pexels,CC0 授權。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
用上這 7 個 Python 工具,提升開發(fā)幸福感
2022年現代Python編程的4個關鍵點
Autotime:簡化時間處理的工具
Python編程必備工具,推薦這五個!
python 十幾行代碼即可搞定錄屏工具,有了它誰還愿意花錢買付
black-嚴格的Python代碼格式化工具
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服