Python pip 套件管理

pip 是 Python 的套件管理工具,用來安裝、更新和移除第三方套件。

基本指令

安裝套件

pip install package_name
# 安裝 requests 套件
pip install requests

# 安裝特定版本
pip install requests==2.28.0

# 安裝最新版本
pip install --upgrade requests

# 安裝最小版本
pip install requests>=2.25.0

移除套件

pip uninstall package_name
pip uninstall requests

查看已安裝的套件

# 列出所有已安裝的套件
pip list

# 顯示套件詳細資訊
pip show requests

搜尋套件

# 在 PyPI 上搜尋
pip search package_name  # 已停用,請直接到 pypi.org 搜尋

requirements.txt

requirements.txt 用來記錄專案需要的套件,方便在其他環境重現相同的套件版本。

產生 requirements.txt

pip freeze > requirements.txt

requirements.txt 內容範例

requests==2.28.0
numpy>=1.20.0
pandas~=1.4.0
flask

版本指定方式

語法意義
==2.28.0精確版本
>=2.25.0最小版本
<=2.30.0最大版本
>=2.25.0,<3.0.0版本範圍
~=2.28.0相容版本(>=2.28.0, <2.29.0)
!=2.27.0排除版本

從 requirements.txt 安裝

pip install -r requirements.txt

常用指令

# 查看 pip 版本
pip --version

# 更新 pip 自己
pip install --upgrade pip

# 查看可更新的套件
pip list --outdated

# 安裝套件到使用者目錄
pip install --user package_name

# 從 GitHub 安裝
pip install git+https://github.com/user/repo.git

# 安裝本地套件
pip install ./my_package

# 安裝開發模式(可編輯)
pip install -e ./my_package

使用國內鏡像源

如果下載速度太慢,可以使用國內的鏡像源:

# 臨時使用
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple

# 永久設定
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

常用鏡像源:

  • 清華大學:https://pypi.tuna.tsinghua.edu.cn/simple
  • 阿里雲:https://mirrors.aliyun.com/pypi/simple

常用套件

網路請求

pip install requests      # HTTP 請求
pip install httpx         # 現代 HTTP 客戶端
pip install aiohttp       # 非同步 HTTP

網頁開發

pip install flask         # 輕量級 Web 框架
pip install django        # 全功能 Web 框架
pip install fastapi       # 現代 API 框架

資料科學

pip install numpy         # 數值計算
pip install pandas        # 資料分析
pip install matplotlib    # 繪圖
pip install scikit-learn  # 機器學習

資料庫

pip install sqlalchemy    # ORM
pip install pymysql       # MySQL
pip install psycopg2      # PostgreSQL
pip install redis         # Redis

工具

pip install pytest        # 測試框架
pip install black         # 程式碼格式化
pip install flake8        # 程式碼檢查
pip install mypy          # 型別檢查

pip vs pip3

在某些系統上,pip 可能對應到 Python 2,pip3 對應到 Python 3:

# 確認 pip 對應的 Python 版本
pip --version
pip3 --version

# 或使用 python -m pip 確保使用正確的版本
python -m pip install package_name
python3 -m pip install package_name

套件安裝位置

# 查看套件安裝位置
pip show package_name | grep Location

# 或在 Python 中查看
import package_name
print(package_name.__file__)

常見問題

權限問題

# 使用 --user 安裝到使用者目錄
pip install --user package_name

# 或使用虛擬環境(推薦)
python -m venv venv
source venv/bin/activate  # Linux/macOS
venv\Scripts\activate     # Windows
pip install package_name

套件衝突

# 查看套件依賴
pip show package_name

# 檢查依賴衝突
pip check

離線安裝

# 下載套件(不安裝)
pip download package_name -d ./packages

# 從本地目錄安裝
pip install --no-index --find-links=./packages package_name

pipx - 安裝 CLI 工具

pipx 用來安裝 Python CLI 工具到隔離的環境:

# 安裝 pipx
pip install pipx

# 使用 pipx 安裝 CLI 工具
pipx install black
pipx install flake8
pipx install poetry