1. 程式人生 > >Python第三方庫和包管理器

Python第三方庫和包管理器

與大多數語言相比,Python 具有大型標準庫。事實上,人們說 Python “自帶電池”,這麼說的原因是因為 Python 帶有適當開展工作所需的庫。但是,標準庫並不具有你想要的一切,標準庫不支援某些太專業化的任務。但好在獨立開發人員編寫了成千上萬個第三方庫。你可以瀏覽 PyPi 排名中最受歡迎的第三方庫列表

如果 Python 本身不包含這些包,那該如何獲取呢?我們可以使用 pip 來安裝庫,Python 3 自帶的一個包管理器。Python 2 使用者也使用 pip,但是 Python 2 沒有自帶,所以必須單獨安裝。如果同時安裝了 Python 2 和 Python 3,每個都具有 pip,可以使用命令 pip2 和 pip3 來進行區分。

pip 是 Python 的標準包管理器,但不是唯一管理器。一個常見選擇是專門為資料科學家和類似使用者設計的 Anaconda。我們將講解 pip,因為其屬於一般標準。

使用 pip 安裝包

讓我們使用 pip 來安裝 pytz 庫。為了確保我們使用的是與 Python 3 安裝相關的 pip,我們將使用命令 pip3。pytz 是一個與時區相關的庫,時區處理是一個非常複雜的任務
我們可以使用 pip3 命令列安裝 pytz:

$ pip3 install pytz

該命令將下載並安裝 pytz,以便於我們將其匯入程式。安裝完成後,我們可以使用與從標準庫匯入相同的語法匯入第三方包。我在這個示例中從標準庫匯入 pytz

datetime。標準的做法是將匯入第三方庫的語句,放在匯入標準庫的語句後面。

from datetime import datetime

import pytz

utc = pytz.utc # utc is Coordinated Universal Time
ist = pytz.timezone('Asia/Kolkata') #IST is Indian Standard Time

now = datetime.datetime.now(tz=utc) # this is the current time in UTC
ist_now = now.astimezone(ist) # this is
the current time in IST.

有用的第三方包

掌握安裝和匯入第三方庫的技能很有用,但要成為一名高效的程式設計師,還需要知道哪些庫可供自己使用。人們通常會通過網上推薦或同事推薦口頭相傳來了解有用的新庫。如果你是一位新的 Python 程式設計師,可能還未認識太多同事,所以從這裡開啟自己的程式設計師生涯,這是 Udacity 中很受工程師歡迎的包列表。

  • 1.IPython - 一個更好的互動式 Python 直譯器
  • 2.requests - 提供製作 Web 請求的簡單方法,用於訪問 Web API。
  • 3.Flask - 用於製作 Web 應用程式和 API 的輕量級框架。
  • 4.Django - 製作 Web 應用程式的特色框架。Django 特別適用於設計複雜、內容繁重的 Web 應用程式。
  • 5.Beautiful Soup - 用於解析 HTML 並從中提取資訊。尤其適用於網路抓取。
  • 6.pytest - 擴充套件 Python 的內建斷言(assertion)和 unittest 模組。
  • 7.PyYAML - 用於閱讀和編寫 YAML 檔案。
  • 9.NumPy - 使用 Python 進行科學計算的基礎包,除了其他功能之外,其還包含強大的 N 維陣列物件和有用的線性代數功能。
  • 10.pandas - 一個包含高表現力、資料結構和資料分析工具的庫。尤其是:pandas 提供了 DataFrame 資料結構!
  • 11.matplotlib - 一個 2D 繪相簿,用於在互動式環境中生成各種硬拷貝格式的出版物質量圖。
  • 12.ggplot - 另一個 2D 繪相簿,基於 R 的 ggplot2 庫。
  • 13.Pillow - Python 影像庫使你的 Python 直譯器新增影象處理功能。
  • 14.pyglet - 用於遊戲開發的跨平臺應用程式框架。
  • 15.Pygame - 用於編寫遊戲的 Python 模組集合。
  • 16.pytz - Python 中的世界時區定義

requirements.txt

較大的 Python 程式可能依賴幾十個第三方包。為了更容易共享這些程式,程式設計師通常會在一個名為 requirements.txt 的檔案中列出專案的依賴項。這是一個 requirements.txt 檔案的示例:

beautifulsoup4==4.5.1
bs4==0.0.1
pytz==2016.7
requests==2.11.1

檔案的每一行都包含一個包的名稱及其版本號。版本號在技術上是可選的,但通常應該包含在內。庫可能在版本之間略有改變(或大幅改變),因此使用程式設計師編寫程式時所使用的相同庫版本非常重要。

大家可以使用 pip,通過以下命令一次安裝專案的所有依賴項:

$ pip3 install -r requirements.txt