背景介绍
本文解决一个常见挑战:有互联网的开发环境 vs 完全隔离的部署环境。这种情况常见于:
- 金融和军事行业
- 政府机构
- 医疗和能源基础设施
三种解决方案
方案一:离线包安装
- 下载所有依赖:
pip download -r requirements.txt -d ./offline_packages - 将包传输到目标环境
- 安装:
pip install --no-index --find-links=./offline_packages -r requirements.txt
方案二:虚拟环境打包
- 创建 venv 并安装依赖
- 使用
venv-pack创建 tar.gz 归档 - 传输并在目标机器上解压
方案三:容器部署
- 编写 Dockerfile
- 使用
docker save导出镜像 - 在目标环境导入并运行
安装流程
完整安装
- 导出所有包:
pip freeze > requirements.txt - 创建目录:
mkdir DIR - 下载包:
pip wheel -w DIR -r requirements.txt - 传输到目标电脑
- 安装:
pip install --no-index --find-links=DIR -r requirements.txt
部分安装
- 手动创建 requirements.txt,指定特定包
- 示例格式:
- 指定版本:
openpyxl==3.0.9 - 最低版本:
pandas>=1.3.0 - 任意版本:
numpy
- 指定版本:
- 安装:
pip install -r requirements.txt