使用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

相关推荐
hey you~9 分钟前
2026年北上广深呼叫中心系统现状:AI Agent落地一年后,技术栈被重构了吗?
大数据·人工智能·ai agent·高并发架构·呼叫中心系统·asr优化·北上广深
一次旅行17 分钟前
【AI技术_工具】用 MCP 把本地工具接入 Claude_Cursor,让 AI 真正摸到你的数据
大数据·人工智能·python
ws20190720 分钟前
从零件到核心:AUTO TECH China 2026广州汽车零部件展的产业新叙事
大数据·人工智能·科技·汽车
微硬创新20 分钟前
汽车制造产线协同:耐达讯PROFINETDeviceNet网关在机器人通信中的应用
人工智能·物联网·网络协议·自动化·汽车·制造·信息与通信
廋到被风吹走21 分钟前
【AI】【Claude】从 Prompt 到 Agent 的完整进阶地图
数据库·人工智能·prompt
zandy101125 分钟前
地址解析厂商推荐:分行业地址服务能力选型与技术分析
大数据·运维·人工智能
财迅通Ai26 分钟前
“光纤传感+AI”双轮驱动加速成长,光格科技步入资产数字化运维快车道
运维·人工智能·科技·光格科技
AOwhisky28 分钟前
Python 学习笔记(第六期)——函数:定义、参数传递与作用域
笔记·python·学习·云原生·运维开发·函数·参数传递
名不经传的养虾人29 分钟前
从0到1:企业级AI项目迭代日记 Vol.67|能运行,和能商用
人工智能·agent·ai编程·企业ai·多agent协作
@@@@@@@@5429 分钟前
JavaScript 的缺点与 TypeScript 的弥补
开发语言·javascript·typescript