背景介绍

本文解决一个常见挑战:有互联网的开发环境 vs 完全隔离的部署环境。这种情况常见于:

  • 金融和军事行业
  • 政府机构
  • 医疗和能源基础设施

三种解决方案

方案一:离线包安装

  1. 下载所有依赖:pip download -r requirements.txt -d ./offline_packages
  2. 将包传输到目标环境
  3. 安装:pip install --no-index --find-links=./offline_packages -r requirements.txt

方案二:虚拟环境打包

  1. 创建 venv 并安装依赖
  2. 使用 venv-pack 创建 tar.gz 归档
  3. 传输并在目标机器上解压

方案三:容器部署

  1. 编写 Dockerfile
  2. 使用 docker save 导出镜像
  3. 在目标环境导入并运行

安装流程

完整安装

  1. 导出所有包:pip freeze > requirements.txt
  2. 创建目录:mkdir DIR
  3. 下载包:pip wheel -w DIR -r requirements.txt
  4. 传输到目标电脑
  5. 安装:pip install --no-index --find-links=DIR -r requirements.txt

部分安装

  1. 手动创建 requirements.txt,指定特定包
  2. 示例格式:
    • 指定版本:openpyxl==3.0.9
    • 最低版本:pandas>=1.3.0
    • 任意版本:numpy
  3. 安装:pip install -r requirements.txt