ubuntu在线服务器python Package安装到离线服务器
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.0python3 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.1python3 setup.py install
安装完成后执行pip list 查看成功与否
------安装所有whl文件
当离线服务器pip准备就绪后就可以安装了
pip install --no-index --find-links=packages -r requirement.txt
执行完毕后,pip list查看,如果没问题则转移成功。