Skip to content

Python套件安裝工具

在 Python 的套件管理中,pipcondapipenv 是三個常見的工具,它們的主要功能都是安裝和管理套件,但各自有不同的特色和適用場景。

Note

初學只需知道怎麼使用這些工具安裝套件即可,譬如: 怎麼執行 pip install package_name 安裝套件,其他的比較慢慢地就會懂了,可以暫時不要深究。

pip

  • 用法:pip install package_name
  • 特點:
    • 最標準、最常見的 Python 套件管理工具,直接從 Python Package Index (PyPI) 下載並安裝套件。
    • 是 Python 自帶的工具,適用於所有標準的 Python 環境。
    • 依賴處理:pip 會自動安裝某個套件的依賴,但不會自動處理套件之間的衝突。
    • 虛擬環境:需要搭配 venvvirtualenv 來管理虛擬環境。
    • 適合場景:適用於需要快速安裝 Python 套件的小型專案。

Note

依賴處理指的是,當A套件的執行需要使用到B跟C套件時,套件管理工具如何去處理這樣的依賴關係;即安裝A時,是否會幫忙安裝B跟C;如果依賴的套件,不全然是Python的套件,套件管理工具怎麼處理?以及潛在的版本問題,套件管理工具怎麼處理?

conda

  • 用法:conda install package_name
  • 特點:
    • 是 Anaconda 和 Miniconda 的一部分,不只適用於 Python,也能管理其他語言和環境。
    • 不只從 PyPI,也從 conda 自己的套件庫下載套件。套件的下載範圍更廣,並且支持科學計算所需的 C 庫和其他依賴包。
    • 依賴處理:conda 能夠有效處理複雜的依賴關係,並自動解決依賴衝突。
    • 虛擬環境:內建環境管理功能,可以輕鬆建立和管理虛擬環境(conda create -n env_name)。
    • 適合場景:適用於科學計算和需要管理大量依賴的專案。

pipenv

  • 用法:pipenv install package_name
  • 特點:
    • pipvirtualenv 功能結合,方便建立和管理虛擬環境。
    • 提供了 PipfilePipfile.lock 來跟蹤安裝的套件及其版本,確保在不同系統上有相同的套件環境。
    • 依賴處理:比 pip 更優化的依賴處理,並提供了 Pipfile.lock 來鎖定依賴版本,確保可重複性。
    • 虛擬環境:自動建立虛擬環境,不需要手動操作。
    • 適合場景:適用於中型專案或需要確保環境一致性的專案。

比較:

特點 pip conda pipenv
套件來源 PyPI conda, PyPI PyPI
虛擬環境支持 手動 (venv, virtualenv) 內建 自動
依賴管理 基本處理 自動處理衝突 改進的依賴處理
使用場景 一般 Python 開發 科學計算、大型專案 中型專案、需要環境一致性

如果你的專案主要是 Python 應用程式且依賴較少,pip是最常用的選擇。如果你做的是數據分析或科學計算,conda會是更好的選擇。而 pipenv更適合需要管理虛擬環境及依賴版本一致性的專案。