conda环境如何把一台服务器虚拟环境迁移到另一台服务器

在conda环境下创建的虚拟环境都保存在envs这个路径下,每个文件夹代表一个虚拟环境,如果在linux操作系统中可以将envs中的虚拟环境文件夹全部手动用tar命令进行打包,然后把打包后的文件移植到另一台目标服务器并解压到conda目录下的envs路径下,那么即可使用 conda activate 命令激活该虚拟环境。

 注意:需要两台服务器的操作系统版本一致,并且最好conda软件的版本也一直,不然会出现一些链接库的错误问题。可能会遇到的错误如下:

mportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by /data/smzh/anaconda3/lib/python3.6/site-packages/scipy/sparse/_sparsetools.cpython-36m-x86_64-linux-gnu.so)
解决方法-添加如下到~/.bash_profile中(换成自己的anaconda3/lib路径)

LD_LIBRARY_PATH=/data/anaconda3/lib:$LD_LIBRARY_PATH     
export LD_LIBRARY_PATH


source ~/.bash_profile 使其生效
 

libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found

解决方法:https://blog.youkuaiyun.com/weixin_52602016/article/details/124478222

ImportError:/home/xxx/Software/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

解决方法:解决ImportError: /home/xxx/Software/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found报错_Peanmai的博客-优快云博客

ImportError: /home/xxx/Software/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

解决方法:解决ImportError: /home/xxx/Software/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found报错_Peanmai的博客-优快云博客

以下方法参考文章:conda-使用教程 - 简书

Conda 提供了多种保存和移动环境的方法。

在本地,conda 可以方便地创建环境的快照或者备份:

 conda create --name snapshot --clone myenv

Spec List

如果需要在具有 相同操作系统 的计算机之间复制环境,则可以生成 spec list。这是离线打包。

生成 spec list 文件:

 conda list --explicit > spec-list.txt

重现环境:

 conda create  --name python-course --file spec-list.txt

Environment.yml

也可以使用 -export 选项生成一个 environment.yml 文件,以在 不同的平台和操作系统之间 复现项目环境。 spec list 文件和 environment.yml 文件之间的区别在于: environment.yml 文件不针对特定操作系统,并且使用YAML格式。 environment.yml 仅列出了软件包名称,由 conda 基于软件包的名称构建环境。 另一个区别是 -export 还包括使用pip安装的软件包,而 spec list 则没有。

导出 environment.yml 文件:

 conda env export > environment.yml

注意:如果当前路径已经有了 environment.yml 文件,conda 会重写这个文件

重现环境:

 conda env create -f environment.yml

 

Conda Pack

Conda-pack 是一个命令行工具,用于打包 conda 环境,其中包括该环境中安装的软件包的所有二进制文件。 当您想在有限或没有网络访问的系统中重现环境时,此功能很有用。上面的方法均从其各自的存储库下载软件包以创建环境。而此方法不需要。注意,conda-pack 指定平台和操作系统,目标计算机必须具有与源计算机相同的平台和操作系统。

要安装 conda-pack,请确保您位于 root 或 base 环境中,以便 conda-pack 在子环境中可用。Conda-pack 可通过 conda-forge 或者 PyPI 安装。

conda-forge:

 conda install -c conda-forge conda-pack

PyPI:

 pip install conda-pack

打包一个环境:

# Pack environment my_env into my_env.tar.gz
conda pack -n my_env

# Pack environment my_env into out_name.tar.gz
conda pack -n my_env -o out_name.tar.gz

# Pack environment located at an explicit path into my_env.tar.gz
conda pack -p /explicit/path/to/my_env

重现环境:

# Unpack environment into directory `my_env`
mkdir -p my_env
tar -xzf my_env.tar.gz -C my_env

# Use Python without activating or fixing the prefixes. Most Python
# libraries will work fine, but things that require prefix cleanups
# will fail.
./my_env/bin/python

# Activate the environment. This adds `my_env/bin` to your path
source my_env/bin/activate

# Run Python from in the environment
(my_env) $ python

# Cleanup prefixes from in the active environment.
# Note that this command can also be run without activating the environment
# as long as some version of Python is already installed on the machine.
(my_env) $ conda-unpack

Conda 提供了多种复制项目环境的方法。 创建环境的克隆可以提供定制的基本环境或该环境的快照。spec listconda-pack 可创建特定于平台和操作系统的环境副本。 其中 spec list 使用网络来下载环境中特定的软件包,而 conda-pack 可以打包包括软件包二进制文件在内的整个环境,这在带宽不足或没有网络的情况下很有用。 Conda导出 environment.yml 的方式非常适合在不同平台和操作系统之间重新创建环境。

### Linux 下 Conda 环境打包迁移 在 Linux 中,可以利用 `conda-pack` 工具来实现 Conda 虚拟环境的高效打包迁移。以下是具体的操作方法: #### 1. 原服务器上的操作 首先,在原服务器上进入 Base 环境安装 `conda-pack` 工具: ```bash conda activate base pip install conda-pack ``` 接着,切换到存储虚拟环境的目录,并使用 `conda pack` 对目标环境进行打包。假设需要迁移环境名为 `my_env`,执行如下命令: ```bash cd /path/to/miniconda3/envs/ conda pack -n my_env -o my_env.tar.gz ``` 此过程会生成一个包含所需依赖项的 `.tar.gz` 文件[^4]。 #### 2. 将压缩包传输至目标服务器 通过 SCP 或其他文件传输工具将生成的压缩包上传到目标服务器。例如,如果目标服务器 IP 地址为 `192.168.1.100` 并希望将其放置于 `/home/user/` 目录下,则可运行以下命令: ```bash scp my_env.tar.gz user@192.168.1.100:/home/user/ ``` #### 3. 在目标服务器上恢复环境 登录目标服务器后,创建一个新的目录用于存放解压后的环境数据,并完成解压工作: ```bash mkdir /path/to/new_env_dir/my_env tar -xzf my_env.tar.gz -C /path/to/new_env_dir/my_env ``` 最后一步是修复路径链接以便正常调用该环境中的 Python 解释器及其他组件。为此需编辑激活脚本: ```bash sed -e 's|^PREFIX=.*|PREFIX=/path/to/new_env_dir/my_env|' \ -i /path/to/new_env_dir/my_env/bin/activate ``` 之后即可激活新的 Conda 环境: ```bash source /path/to/new_env_dir/my_env/bin/activate ``` 至此,Conda 环境成功从源服务器迁移到目标服务器[^1]。 --- ### 注意事项 - 如果两台机器架构不同(如 x86_64 和 ARM),则可能无法直接迁移二进制兼容的库文件。 - 当目标服务器无互联网连接时,可通过提前下载所有必要软件包的方式构建离线可用的新环境[^5]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值