前言
日常工作中常常会碰到在网络隔离的环境中安装Python库的情况,且Python版本不固定。目前只能在有网络的环境中手动下载安装包后,再进行离线安装,但是Python库常常会有依赖问题,逐个解决依赖项显然不是一个明智之举。
环境准备
- 离线Linux服务器已安装对应Python版本
- 有网络的Linux环境安装pyenv工具 + virtualenv插件
安装步骤
下面以在 Python 3.8.0
中安装 redfish_utilities
库为例
1. 使用virtualenv创建一个对应Python版本的虚拟环境
pyenv virtualenv 3.8.0 py380
2. 切换到虚拟环境
使用虚拟环境能够保证与原有环境中已安装的包互不影响
pyenv activate py380
3. 安装第三方库
pip install redfish_utilities
(这复杂的依赖关系,如果手动逐个安装,不知道要耗费多少时间...)
4. 生成依赖关系
pip freeze >requirements.txt
5. 根据依赖关系下载离线安装包
pip download -d package_download/ -r requirements.txt
6. 离线安装
将所有离线安装包和requirements.txt文件拷贝到离线环境中,执行下述代码即可自动安装所有依赖项
pip install --no-index --find-links="." -r requirements.txt