conda-pack打包环境到超算上。解决无法打包可编辑包

发布于:2025-04-12 ⋅ 阅读:(106) ⋅ 点赞:(0)

conda-pack 打包

使用 conda-pack 打包 Conda 环境可以将整个环境打包成一个独立的可移植压缩包,方便在其他机器上解压使用。以下是具体步骤:

1.安装 conda-pack

首先需要安装 conda-pack。你可以通过 conda 或 pip 安装:

conda install -c conda-forge conda-pack

pip install conda-pack

2. 创建并激活 Conda 环境

如果你还没有创建一个 Conda 环境,可以使用以下命令创建一个新环境:

conda create --name myenv python=3.8
conda activate myenv

3. 安装所需的包

在激活的环境中安装你所需的包,例如:

conda install numpy pandas

4. 打包环境

使用 conda-pack 将环境打包成一个压缩文件:

conda pack -n myenv -o myenv.tar.gz

这里,-n myenv 指定要打包的环境名称为 myenv,-o myenv.tar.gz 指定输出文件名为 myenv.tar.gz。

5. 将压缩包传送到目标机器上(超算)

6. 解压缩包

在目标机器上解压压缩包:

mkdir -p ~/myenv
tar -xzf myenv.tar.gz -C ~/myenv

以我为例: 我先新建了一个env_clrnet的文件夹。随后将压缩包解压到这个文件夹下。
在这里插入图片描述
解压后:
在这里插入图片描述

7. 修复环境

解压后,需要修复环境中的路径:

~/myenv/bin/conda-unpack

这一步将更新环境中的路径,使其在新的位置上正常工作。

8. 使用环境,以后需要激活环境也是使用这个命令。

可以直接激活和使用解压后的环境:

source ~/myenv/bin/activate

我具体的代码执行如下:

在这里插入图片描述

解决可编辑包无法打包的问题

在我执行了clrnet中的setup.py后,打包会 报错如下:

(clrnet) root@e688bc15f52d:/zhangquan/CLRNet-main# conda pack -n clrnet -o clrnet.tar.gzCollecting packages...
CondaPackError: Cannot pack an environment with editable packages
installed (e.g. from python setup.py develop or
 pip install -e). Editable packages found:

- /zhangquan/CLRNet-main

你这条命令的报错是因为你在 CLRNet-main 目录下用了 pip install -e . 这种 开发者模式安装(editable mode),它会创建一个指向源代码目录的软链接,而 conda pack 不允许这种环境被打包。

解决方法:

# 卸载 editable 模式安装的包
pip uninstall clrnet

# 使用普通安装方式重新安装
pip install .

然后再执行:

conda pack -n clrnet -o clrnet.tar.gz

在执行了pip install .后可能会出现运行代码报错的问题,是一些包冲突,此时需要慢慢再解决;