目录
-
- [1️⃣ `conda pack`](#1️⃣
conda pack) - [2️⃣ `-n lerobot`](#2️⃣
-n lerobot) - [3️⃣ `-o ~/lerobot_env.tar.gz`](#3️⃣
-o ~/lerobot_env.tar.gz) - [4️⃣ `--ignore-editable-packages`](#4️⃣
--ignore-editable-packages) - [5️⃣ 命令整体意思](#5️⃣ 命令整体意思)
- [6️⃣ 打包后的典型使用流程](#6️⃣ 打包后的典型使用流程)
-
- [① 打包](#① 打包)
- [② 复制到另一台机器](#② 复制到另一台机器)
- [③ 解压](#③ 解压)
- [④ 修复路径](#④ 修复路径)
- [7️⃣ 最终使用](#7️⃣ 最终使用)
- [1️⃣ `conda pack`](#1️⃣
这条命令是 把一个 Conda 环境打包成一个压缩文件,方便在别的机器上直接解压使用。我们逐部分拆开理解:
conda pack -n lerobot -o ~/lerobot_env.tar.gz --ignore-editable-packages
1️⃣ conda pack
conda pack 是一个工具,用来 打包已有的 Conda 环境。
作用类似:
-
把环境里的
- Python
- 所有依赖包
- 可执行文件
全部打包成一个 可迁移的压缩包。
常见用途:
- 在 服务器之间复制环境
- 在 无网络机器部署环境
- 在 Docker / 机器人 / 集群节点部署
例如:
conda pack -n myenv -o myenv.tar.gz
2️⃣ -n lerobot
指定要打包的 conda环境名称
意思是:
打包名为 lerobot 的环境
例如:
conda env list
可能看到:
base
lerobot
ros_env
这里就是打包 lerobot。
3️⃣ -o ~/lerobot_env.tar.gz
指定 输出文件
-o = output
输出路径:
~/lerobot_env.tar.gz
解释:
| 部分 | 含义 |
|---|---|
~ |
用户 home 目录 |
lerobot_env.tar.gz |
压缩包名字 |
最终得到:
/home/username/lerobot_env.tar.gz
4️⃣ --ignore-editable-packages
意思是:
忽略 editable 模式安装的 Python 包
例如这种安装方式:
pip install -e .
或
pip install -e /path/to/project
这种包其实只是:
site-packages -> 指向源码目录
例如:
site-packages/mypkg -> /home/user/project/mypkg
如果打包:
conda-pack
它会发现:
源码不在conda环境里
就可能报错。
所以加上:
--ignore-editable-packages
意思是:
这些 editable 包不打包
5️⃣ 命令整体意思
完整翻译:
将名为 lerobot 的 conda 环境打包成
~/lerobot_env.tar.gz压缩包,并 忽略 editable 模式安装的包。
6️⃣ 打包后的典型使用流程
① 打包
conda pack -n lerobot -o lerobot_env.tar.gz
② 复制到另一台机器
scp lerobot_env.tar.gz user@server:/home/user
③ 解压
mkdir lerobot_env
tar -xzf lerobot_env.tar.gz -C lerobot_env
④ 修复路径
cd lerobot_env
./bin/conda-unpack
conda-unpack 会修复:
硬编码路径
例如:
/home/old_user/miniconda/envs/lerobot
变成
/home/new_user/lerobot_env
7️⃣ 最终使用
直接:
source lerobot_env/bin/activate
或者:
lerobot_env/bin/python
就可以运行。