1. 场景
需要用到离线安装的场景比较普遍,一般接入4A的平台都会把外网切断,但是python的各种安装包,一般都是通过pip 直接线上安装,所以记录一下导入导出的安装方式
2. 实战
- 获取一份当前安装的清单文件
pip3 freeze > requirements.txt
- 查看一下清单文件,记录了版本号等内容
cat requirements.txt
# 以下是输出的内容
asn1crypto==0.24.0
bcrypt==3.1.6
cached-property==1.5.1
certifi==2019.3.9
cffi==1.12.2
chardet==3.0.4
cryptography==2.6.1
docker==3.7.2
docker-compose==1.24.0
docker-pycreds==0.4.0
dockerpty==0.4.1
docopt==0.6.2
hdfs==2.5.2
idna==2.7
jsonschema==2.6.0
paramiko==2.4.2
psutil==5.6.2
pyasn1==0.4.5
pycparser==2.19
PyMySQL==0.9.3
PyNaCl==1.3.0
PyYAML==3.13
requests==2.20.1
six==1.12.0
sqlanydb==1.0.10
texttable==0.9.1
urllib3==1.24.2
websocket-client==0.56.0
- 按照这份清单文件下载安装包
mkdir -p /tmp/pkg
pip3 download -r requirements.txt -d /tmp/pkg
cd /tmp
- 将下载好的包上传到4A平台下内网环境,使用pip3 命令导入安装包
pip3 install --no-index --find-links=./pkg
注意, --no-index 表示我要导入包的顺序是无序的,因为包与包之间可能会存在依赖关系,所以我们要关闭这些依赖