1、線上伺服器匯出requirement.txt
pip freeze > requirement.txt
該檔案生成完畢後,需要做些修改,去掉不需要的庫,否則下載的時候會出錯。
2、下載whl檔案 -> packages
pip download -r requirement.txt -d packages
pip download -r requirement.txt -d packages -i https://pypi.tuna.tsinghua.edu.cn/simple/
下載完成後packages資料夾包含所有的whl檔案。
3、離線伺服器ubuntu20.04 檢視是否包含python pip
這個版本的伺服器已經安裝python3.8.5,但是沒有安裝pip,從而導致安裝whl檔案失敗。
沒有python的則需要自行安裝。
4、離線安裝pip
安裝pip的話需要提前安裝setuptools,所以需要下載兩個包。
------下載
setuptools下載地址:https://pypi.org/project/setuptools/
pip下載地址:https://pypi.org/project/pip/
需要注意對應的python版本
我下載的是setuptools==45.2.0 pip==23.1 他們都是要求python>=3.7,最開始我下載的是setuptools==67.6.1,但是出現了問題,最後我選擇了45版本。
-----解壓安裝setuptools
tar -xvzf setuptools-45.2.0.tar.gz cd setuptools-45.2.0 python3 setup.py install
出現了問題 No module named 'distutils.core'
百度了一圈發現是少了外掛,離線的話又需要重新下載安裝
python3-distutils地址:https://pkgs.org/search/?q=python3-distutils 有時候需要人機檢驗,搜尋完成後,選擇伺服器版本與python版本,大致對應即可
點選進入詳細地址:https://ubuntu.pkgs.org/20.04/ubuntu-main-amd64/python3-distutils_3.8.2-1ubuntu1_all.deb.html
檢視需要的依賴
還需要python3-lib2to3這個,因為python已經有了,直接點選進去也是選擇對應版本即可。
外掛下載地址是在download部分
直接開啟http://archive.ubuntu.com/ubuntu/pool/main/p/python3-stdlib-extensions/python3-distutils_3.8.2-1ubuntu1_all.deb 這個連結開始下載python3-distutils_3.8.2
同理開啟http://archive.ubuntu.com/ubuntu/pool/main/p/python3-stdlib-extensions/python3-lib2to3_3.8.2-1ubuntu1_all.deb 下載python3-lib2to3_3.8.2
下載完成後上傳至同一目錄
----安裝setuptools依賴
sudo dpkg -i *.deb
安裝完成後再安裝setuptools,安裝完成後import 看看有沒有問題。
-----解壓安裝pip
setuptools安裝成功後就可以安裝pip了
tar -xvzf pip-23.1.tar.gz cd pip-23.1 python3 setup.py install
安裝完成後執行pip list 檢視成功與否
------安裝所有whl檔案
當離線伺服器pip準備就緒後就可以安裝了
pip install --no-index --find-links=packages -r requirement.txt
執行完畢後,pip list檢視,如果沒問題則轉移成功。