在企業內部網路、實驗室、或伺服器因安全性無法連網時,要用 pip 安裝 Python 套件常常變成一場噩夢。但其實,只要先在有網路的地方打包好套件,就能在完全離線的環境中順利安裝。
這篇文章帶你從頭到尾搞懂 pip 離線打包與安裝的完整流程,讓沒有網路的 Python 環境一樣能安裝需要的套件。
為什麼需要離線安裝?
-
內網環境(無法直接連 PyPI)
-
伺服器安全政策禁止連網
-
在機房或特殊硬體(醫療、工控)環境下工作
步驟一:在有網路的環境打包套件
-
建立一個資料夾存放套件:
mkdir packages
使用 pip download
把目標套件和依賴全部下載下來:
pip download -d packages numpy pandas
-
-
-d packages
表示存放路徑 -
pip download
不會安裝,只是下載.whl
或.tar.gz
-
-
把
packages
資料夾(或壓縮後的檔案)帶到離線環境。
步驟二:在離線環境安裝
進入有套件檔案的資料夾,使用以下指令:
pip install --no-index --find-links=packages numpy
參數解釋:
-
--no-index
:不要去 PyPI 查詢 -
--find-links=packages
:指定套件來源為本地資料夾
如果有 requirements.txt?
只要在有網路的環境先下載所有套件:
pip download -d packages -r requirements.txt
到了離線環境再執行:
pip install --no-index --find-links=packages -r requirements.txt
進階技巧
打包成壓縮檔方便搬運
tar -czvf packages.tar.gz packages
離線後再解壓縮:
tar -xzvf packages.tar.gz
指定平台或 Python 版本
若離線機器環境不同,可提前下載對應版本:
pip download --python-version 38 --platform win_amd64 --only-binary=:all: -d packages some_package
結論
透過 pip download
先把套件與依賴完整打包,再用 pip install --no-index --find-links
在離線環境安裝,就能完全脫離網路限制,輕鬆部署 Python 專案。
我的補充
真的下載套件後
可能會下載很多其他套件
但是不一定要全部安裝
可以先放入主要套件安裝
安裝時說缺少XXX再把缺的套件複製進去即可
避免又有非必要的升級
給大家參考喔~
留言板
歡迎留下建議與分享!希望一起交流!感恩!