使用conda-pack打包完整 Python 环境 + 依赖包,传到无网机器解压即用

在 Linux 环境下,要实现"打包完整 Python 环境 + 依赖包,传到无网机器解压即用",目前业界公认最好、最稳妥的方案就是使用 conda-pack。

它专门解决了原生 .venv 无法跨机器移植的"绝对路径写死"和"二进制不兼容"问题。以下是为你整理的、可直接照着执行的详细操作手册:

⚠️ 核心前提(必须严格遵守)

打包机器的 Linux 发行版、系统版本、CPU 架构,必须与目标无网服务器完全一致!

(例如:都是 CentOS 7 x86_64,或都是 Ubuntu 22.04 aarch64。如果架构或系统不同,打包过去的底层 C 扩展库一定会报错。)

第一步:在有网的 Linux 机器上准备环境

1 安装 conda-pack 工具

在你的基础 conda 环境中执行:

pip install conda-pack

或者使用 conda 安装

conda install -c conda-forge conda-pack

2创建并配置你的项目专属环境

强烈建议为该项目创建一个干净的独立环境,避免把无关的系统包装进去导致体积过大:

创建名为 my_project 的环境,指定与你目标服务器一致的 Python 版本

conda create -n my_project python=3.10

激活环境

conda activate my_project

安装你项目所需的所有依赖

pip install -r requirements.txt

3清理缓存(减小打包体积)

打包前务必清理,否则会把历史下载的无用包全打进去:

conda clean -a -y

第二步:执行打包

在当前激活的 my_project 环境下,或者指定环境名进行打包:

-n 指定要打包的环境名

-o 指定输出的压缩包名称

--ignore-missing-files 可忽略某些非关键的缺失文件警告

conda pack -n my_project -o my_project_env.tar.gz -- ignore-missing-files

说明:conda-pack 会将整个环境(包含 Python 解释器、pip、所有第三方库)打包成一个独立的 tar.gz 文件。这个文件内部已经内置了 conda-unpack 修复脚本。

第三步 创建目录并解压

mkdir -p etf-crawler_env

tar -xzf etf-crawler_env.tar.gz -C etf-crawler_env

第四步:激活环境(这一步会触发 conda-unpack 修复路径)

source etf-crawler_env/bin/activate

第五步:【关键】执行 unpack 修复所有硬编码路径

conda-unpack

第六步:验证是否正常

在虚拟环境:

python -c "import numpy, pyarrow, greenlet; print('OK')"

source etf-crawler_env/bin/deactivate

python -u /data/app/fc_dp/lib/etf-crawler-api/main.py 20240902

最后退出虚拟环境:

source etf-crawler_env/bin/deactivate

相关推荐
奔跑中的小象5 小时前
统信UOS + 天数AI卡部署SGLang服务手册
人工智能·uos·sglang·天数智芯
DevSecOps选型指南5 小时前
中国版Mythos,为何是悬镜安全灵脉CodeAI?
人工智能·安全
Shockang5 小时前
LangGraph 状态机实战
人工智能
DLYSB_5 小时前
存储运维实战:基于 Ceph Event 监听与 Python 适配器的分布式存储健康度物理声光响应架构
运维·ceph·python·报警灯
刹那芳华19925 小时前
循环神经网络的从零开始实现(RNN)
人工智能·rnn·深度学习
阿童木写作5 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
科技之门5 小时前
AI3D从建模到贴图、绑骨和动画的完整流程怎么做?V2Fun完整工作流指南
人工智能·3d·贴图
宇宙第一小趴菜5 小时前
二、机器学习的应用领域和发展史
人工智能·机器学习
前端开发江鸟5 小时前
我写过 MCP Server,却一直以为 MCP 只有 Tool
人工智能
天国梦6 小时前
自习室智能化升级避坑指南:天学网AI智习室方案实测与选型建议
大数据·人工智能