You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无网络无Pip环境下迁移Python2.7指定依赖包至生产VM的方案咨询

无网环境下Python2.7依赖迁移解决方案

1. 精准定位脚本所需依赖

先在开发VM上锁定脚本必须的依赖,避免打包无关包:

  • 开发机有网,先装pipreqs:pip install pipreqs,进到脚本所在目录执行:
    pipreqs --encoding=utf8 .
    
    会生成requirements.txt,里面全是脚本直接依赖的包及对应版本。要是没pipreqs,就手动运行脚本,把报错缺失的包逐个加到requirements.txt里,直到脚本正常运行,确保这个文件只保留必要依赖。

2. 下载所有依赖到指定目录

把requirements.txt里的包(包括间接依赖)统一下载到单独目录:

pip download -d /your/local/package_dir -r requirements.txt

如果pip版本较老,改用:

pip install --download /your/local/package_dir -r requirements.txt

这一步会自动把所有需要的包(wheel或源码格式)拉到指定目录,不用手动去PyPI逐个找。

3. 打包迁移到生产VM

把依赖目录打包:

tar -czf python_deps.tar.gz /your/local/package_dir

用scp传到生产VM的目标目录:

scp python_deps.tar.gz your_user@production_vm:/dest/on/production

在生产VM上解压:

tar -xzf python_deps.tar.gz -C /dest/on/production

4. 离线安装(不升级已有包)

生产VM没pip的话,先解决pip问题,或者直接用源码安装:

  • 推荐先装pip:在开发机下载Python2.7兼容的pip安装包(比如pip-20.3.4.tar.gz),传到生产VM解压后执行python setup.py install完成pip安装。然后用pip离线安装依赖:
    pip install --no-index --find-links=/dest/on/production/package_dir --no-upgrade -r requirements.txt
    
    --no-index禁止pip从PyPI拉取包,--find-links指定本地包目录,--no-upgrade确保不会修改生产机已预装的包。
  • 不用pip的情况:逐个处理包。wheel包先装wheel模块(传wheel源码包到生产机执行python setup.py install),再用python -m wheel install --no-upgrade xxx.whl安装;源码包解压后进入目录执行:
    python setup.py install --no-upgrade
    
    注意按依赖顺序安装,先装被其他包依赖的基础包,再装上层依赖。

关键注意事项

  • 开发VM和生产VM的操作系统、架构要一致(比如都是64位CentOS),否则wheel包可能不兼容。怕麻烦就强制下载源码包:
    pip download --no-binary :all: -d /your/local/package_dir -r requirements.txt
    
  • 安装时必须加--no-upgrade参数,绝对不能改动生产机上已有的预装包。
  • 最好在开发机创建干净的Python2.7虚拟环境,安装requirements.txt里的包并测试脚本运行,确认无依赖遗漏后再打包迁移,能大幅降低出错概率。

内容的提问来源于stack exchange,提问作者uds0128

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 10:37:07