我要如何從 github上面查看套件的相關套件最低需求版本? 例如 django 相關套件很多都限制django 版本,但是我又希望不要更動django 版本
你想要知道某個 GitHub 專案(或套件)對 Django 版本的最低需求,而且不想升降自己的 Django 版本,這是一個常見的問題。以下提供幾個方法,從最直接到比較進階的方式:
1. 查看 pyproject.toml 或 setup.py
大部分 Python 套件都會在專案的根目錄放一個檔案,定義相依需求:
pyproject.toml
setup.cfg
setup.py
或 requirements.txt
步驟
到該專案的 GitHub 頁面
打開 pyproject.toml 或 setup.py
找 install_requires 或 dependencies 之類的欄位,通常會寫:
install_requires = [ "django>=3.2,<5.0", "djangorestframework>=3.14", ]
這樣就可以看出最低支援版本(例如 >=3.2,<5.0)。
2. 在 GitHub 搜尋 "requires" 或 "django"
如果專案比較複雜,你可以直接用 GitHub 搜尋:
在專案頁面,按 t(開啟檔案搜尋)
搜尋 django 或 requires
3. 用 PyPI 查看
如果該套件有發佈到 PyPI(https://pypi.org),
可以在 PyPI 頁面的 Release history 或 Project description 找到依賴限制。
也可以在終端機用 pip 安裝時先查詢:
pip index versions django-ninja
或
pip install django-ninja==99 # 故意裝不存在版本,pip 會顯示所有相容條件
4. 利用 pip 安裝測試 (不更動系統環境)
若不確定,可以在虛擬環境測試安裝:
python -m venv venv source venv/bin/activate # Windows 是 venv\Scripts\activate pip install django==4.2 pip install django-ninja
如果版本不相容,pip 會報錯並告訴你它需要什麼範圍的 Django。
5. 為什麼這樣做?
很多 Django 的擴充套件會寫死 Django 的版本範圍,例如:
>=3.2,<4.3
>=4.0,<5.0
原因是它們只在這些版本上測試過。如果你不想更動自己的 Django 版本,就必須選擇一個支援你版本的套件版本(可能需要裝舊版)。
建議工作流程
先鎖住你的 Django 版本 (在 requirements.txt)
到該套件的 GitHub 或 PyPI 確認相容版本範圍
如果不相容,就找該套件的舊版本來安裝。
延伸:用 pipdeptree 確認相依套件需求
裝好套件後,可以用:
pip install pipdeptree pipdeptree
看所有套件的版本依賴。
留言板
歡迎留下建議與分享!希望一起交流!感恩!