目的
项目需要离线安装python包(本项目特指的docker-compose包,这里指的是python的包)。
环境
两台ubuntu18.04.5服务器,其中一台(192.168.230.134)可以联网,另一台无法联网(192.168.230.135)
python版本:python3.6
问题
在134上下载所有关联的离线包,使用如下命令:
mkdir /opt/docker-compose-whl
cd /opt/docker-compose-whl
pip3 download -d ./ docker-compose
如果按上述方式下载完成后,在135上安装,可能会报如下错误:
Collecting paramiko>=2.4.2; extra == "ssh" (from docker[ssh]>=5->docker-compose)
Collecting pynacl>=1.0.1 (from paramiko>=2.4.2; extra == "ssh"->docker[ssh]>=5->docker-compose)
Could not find a version that satisfies the requirement pynacl>=1.0.1 (from paramiko>=2.4.2; extra == "ssh"->docker[ssh]>=5->docker-compose) (from versions: )
No matching distribution found for pynacl>=1.0.1 (from paramiko>=2.4.2; extra == "ssh"->docker[ssh]>=5->docker-compose)
看提示是版本不对导致,经过多方排查,发现134上的pip3版本为21.x,而135是新装的系统,pip3版本是9.x,因此引发如上错误,为避免该错误的发生,将pip3的最新包也下载下来放在docker-compose-whl
目录内,完整操作如下:
mkdir /opt/docker-compose-whl
cd /opt/docker-compose-whl
pip3 download -d ./ docker-compose
pip3 download -d ./ pip
然后拷贝到135上的/opt/docker-compose-whl
目录内,在135上执行安装
# 升级pip
python3 -m pip install -U pip --no-index --find-links=/opt/docker-compose-whl
# 安装docker-compose
python3 -m pip install docker-compose --no-index --find-links=/opt/docker-compose-whl
此时即可安装成功