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

如何将Ubuntu上的Python virtualenv完整迁移至无网络目标机器?

迁移Python虚拟环境到无网Ubuntu机器的可行方案

Got it,这种离线迁移虚拟环境的需求我碰到过好多次了,给你整理两个最靠谱的亲测方案,你可以根据自己的场景选择:

方案一:直接打包现有虚拟环境(最简快速版)

适合虚拟环境体积不大、目标机器和开发机系统架构/版本一致的情况:

  • 先在开发机上退出虚拟环境:deactivate
  • 把整个虚拟环境文件夹打包成压缩包,假设你的环境名叫my_project_env:
    tar -czvf my_project_env.tar.gz my_project_env/
    
  • 将压缩包、项目代码一起拷贝到U盘
  • 在目标机器上,把压缩包解压到你想要的目录(比如~/projects/):
    tar -xzvf my_project_env.tar.gz -C ~/projects/
    
  • 激活迁移后的环境:
    source ~/projects/my_project_env/bin/activate
    

注意:如果环境里包含编译过的二进制依赖(比如numpy、pandas这类),目标机器的Ubuntu版本、CPU架构必须和开发机一致,否则可能出现运行报错。如果遇到兼容性问题,建议切换到方案二。

方案二:离线下载依赖包,重建环境(稳妥兼容版)

适合跨系统版本/架构,或者担心直接打包出现问题的场景:

开发机操作步骤:

  1. 激活你的虚拟环境:
    source my_project_env/bin/activate
    
  2. 导出当前环境的依赖列表:
    pip freeze > requirements.txt
    
  3. 创建一个文件夹存储所有离线包:
    mkdir offline_packages
    
  4. 下载所有依赖到该文件夹(会优先下载wheel格式的预编译包,减少目标机器编译需求):
    pip download -r requirements.txt -d offline_packages/
    
    • 如果项目中有从Git或其他非PyPI源安装的包,记得把这些包的源码/安装文件一并拷贝,或者在requirements.txt中修改为本地路径
  5. 将requirements.txt、offline_packages文件夹、项目代码全部拷贝到U盘

目标机器操作步骤:

  1. 如果目标机器还没安装virtualenv,先通过离线包安装(提前在开发机用pip download virtualenv -d offline_packages/把它也下载好):
    python -m pip install --no-index --find-links=offline_packages virtualenv
    
  2. 创建新的虚拟环境:
    virtualenv my_new_env
    
  3. 激活新环境:
    source my_new_env/bin/activate
    
  4. 安装离线依赖:
    pip install --no-index --find-links=offline_packages/ -r requirements.txt
    
  5. 把项目代码拷贝到目标机器的合适路径,即可正常运行

额外注意事项

  • 尽量保证开发机和目标机器的Python大版本一致(比如都是3.8.x),避免版本不兼容问题
  • 对于需要编译的C扩展包(如psycopg2、scipy),最好在与目标机器系统匹配的环境中下载离线包,或者优先使用wheel包
  • 别忘了拷贝项目的配置文件、静态资源等非代码文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:09:12