ubuntu線上伺服器python Package安裝到離線伺服器

2023-04-18 21:00:42

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檢視,如果沒問題則轉移成功。