ubuntu在线服务器python Package安装到离线服务器

  • ubuntu在线服务器python Package安装到离线服务器已关闭评论
  • 190 次浏览
  • A+
所属分类:linux技术
摘要

1、在线服务器导出requirement.txt 该文件生成完毕后,需要做些修改,去掉不需要的库,否则下载的时候会出错。

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版本。

ubuntu在线服务器python Package安装到离线服务器

-----解压安装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版本,大致对应即可

ubuntu在线服务器python Package安装到离线服务器

 点击进入详细地址:https://ubuntu.pkgs.org/20.04/ubuntu-main-amd64/python3-distutils_3.8.2-1ubuntu1_all.deb.html

查看需要的依赖

ubuntu在线服务器python Package安装到离线服务器

 还需要python3-lib2to3这个,因为python已经有了,直接点击进去也是选择对应版本即可。

插件下载地址是在download部分

ubuntu在线服务器python Package安装到离线服务器

 直接打开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查看,如果没问题则转移成功。