使用 conda-pack 快速复制可用环境

背景:在网络良好的环境下搭建的环境可否在无网环境下复现的问题;或者说开发环境快速复制的实现问题。

1. 安装 conda

链接

2. 创建单独的打包环境

conda create -n pack python==3.10 -y
conda activate pack
conda install conda-pack

3. 将目标环境打包成压缩文件

例如我们将构建好的用来跑 sam2 的环境进行复制,这个时候我们先将这个环境整体打包成一个 .tar.gz 文件。

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

注意目前还是在 conda 的 pack 环境下。

4. 将打包好的环境通过 scp 发送到另外一个服务器上

如果是在云服务器之间复制环境就这么做,如果是复制到完全的离线环境中,那么就使用 U 盘拷贝。

scp 压缩文件全路径 username@ip:/home/username/需要放置的路径
# 举个例子:scp sam2.tar.gz ubuntu@117.50.89.192:/home/ubuntu/mycode

5. 手动创建 conda 的环境

使用下面的指令链接上远程的云服务器:

ssh ubuntu@117.50.89.192
# 输入远程主机密码
cd ~/mycode

注意这个时候在远程操作云服务器中:

cd ~/mycode
mkdir -p ~/miniconda3/envs/sam2_remote
tar -xzf sam2.tar.gz ~/miniconda3/envs/sam2_remote/
conda info --envs # 查看解压完毕之后 conda 环境中会不会多出来 sam2_remote 这个新的环境
conda activate sam2_remote
~/miniconda3/envs/sam2_remote/bin/conda-unpack

6. 检测效果

注意这个时候的环境处于 sam2_remote 之下,参考这个链接完成 sam2 的复现,这次就可以跳过复杂的以来安装了。

两个小技巧:1. su -sh sam2.tar.gz 可以用来查看压缩之后的文件大小,如果太小那肯定是出了问题。2. exit 指令用来退出远程连接。

### 如何复制现有的 Conda 环境 #### 方法一:通过打包和解压环境文件 可以使用 `conda-pack` 工具来实现无网络环境下的 Conda 环境复制。以下是具体操作步骤: 1. **安装 conda-pack** 在源主机上安装 `conda-pack`,可以通过以下命令完成: ```bash conda install conda-pack ``` 这一步确保能够将环境打包为压缩文件[^1]。 2. **打包现有环境** 使用 `conda-pack` 命令对目标环境进行打包: ```bash conda pack -n your_env_name -o dsmil.tar.gz ``` 此处 `-n` 参数指定要打包的环境名称,`-o` 参数指定输出文件名[^1]。 3. **传输打包文件到目标主机** 将生成的 `.tar.gz` 文件复制到目标主机上。可以使用 USB、网络传输工具或其他方式完成文件传输。 4. **解压环境文件** 在目标主机上解压 `.tar.gz` 文件: ```bash tar -xzf dsmil.tar.gz -C /path/to/destination/ ``` 解压后的目录结构应包含完整的 Conda 环境文件。 5. **移动环境目录至 Conda 环境存放路径** 找到 Conda 环境的默认存储路径(如 Linux 系统中的 `~/anaconda3/envs/` 或 Windows 系统中的 `C:\Users\<username>\Anaconda3\envs\`),然后将解压后的目录移动到该路径下。 6. **激活环境** 激活新复制环境: ```bash conda activate your_env_name ``` --- #### 方法二:通过导出和导入 YAML 配置文件 另一种方法是通过导出环境配置文件并重新创建环境。 1. **导出环境配置文件** 在源主机上激活目标环境后,运行以下命令导出环境配置信息到 YAML 文件: ```bash conda env export > environment.yml ``` 该文件包含了环境的所有依赖项及其版本信息[^2]。 2. **传输 YAML 文件到目标主机** 将生成的 `environment.yml` 文件复制到目标主机上。 3. **根据 YAML 文件创建环境** 在目标主机上运行以下命令以基于 YAML 文件重新创建环境: ```bash conda env create -f environment.yml ``` 这会自动安装 YAML 文件中定义的所有依赖项[^2]。 --- #### 方法三:直接复制环境目录 如果两台主机上的 Conda 安装路径一致,可以直接复制环境目录。 1. **定位源主机上的环境目录** 默认情况下,Conda 环境位于 `~/anaconda3/envs/` 或 `C:\Users\<username>\Anaconda3\envs\` 下。 2. **复制环境目录到目标主机** 使用文件管理工具或命令行工具将整个环境目录复制到目标主机的相同路径下。 3. **验证环境可用性** 在目标主机上激活环境并测试其功能: ```bash conda activate your_env_name python --version ``` --- #### PyCharm 中导入现有 Conda 环境 在 PyCharm 中导入已复制Conda 环境时,需执行以下操作: 1. 打开 PyCharm 并进入项目的设置界面。 2. 在“Project Interpreter”选项中选择“Add Interpreter”。 3. 选择“Conda Environment”并点击“Existing environment”。 4. 浏览并指定 Conda 环境的路径(例如:`C:\Users\WILL\AppData\Local\anaconda3\condabin\conda.bat`)[^3]。 5. 重新加载环境列表,并从下拉菜单中选择所需的环境名称。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值