复制Anaconda虚拟环境

转载自:https://blog.youkuaiyun.com/qq_37764129/article/details/102496746

查现有环境 
conda info --env

复制环境
有两种办法复制环境:

一,在本机上,直接使用

conda create -n 新环境名 --clone 旧环境名

复制既有环境

二,如果要复制到其他机器,就要考虑导出当前环境到文件,利用文件再次创建环境

1) 导出环境

首先激活要导出的环境

conda activate 环境名 

导出环境

conda env export > 环境名.yaml
利用conda env export 导出的是个yaml格式的文件,该文件记录了环境名,软件源地址以及安装包列表
2) 使用yaml配置文件创建新环境

conda env create -f 环境名.yaml
在新的机器中可直接执行上述命令,生成的环境与复制源完全一样(包括环境名),如果想在同一台机器上复制,需要把yaml文件中的环境名修改为一个新的名字,否则会冲突。
【注】还有一种复制环境的方式

conda list --explicit > env.txt
conda create -n newenv -f env.txt
这种方式只能复制环境中以conda install安装的包,不能复制pip install安装的包,因此不建议使用。
 

### Anaconda 虚拟环境继承基础环境的包与配置 在使用 Anaconda 创建虚拟环境时,默认情况下新创建的虚拟环境不会自动继承基础环境(Base 环境)中的包和配置。然而,可以通过特定参数实现这一功能。 #### 方法一:通过 `--clone` 参数复制 Base 环境 可以利用 `conda create --name 新环境名称 --clone base` 命令来克隆基础环境到新的虚拟环境中[^1]。这种方式会将基础环境中的所有包及其版本完全复制到目标虚拟环境中。需要注意的是,这种方法适用于希望一次性迁移整个环境的情况,后续如果基础环境有更新,则需要重新执行此操作以同步变化。 ```bash conda create --name my_clone_env --clone base ``` #### 方法二:启用 `--inherit` 或者指定依赖项的方式 另一种方法是在创建虚拟环境的时候显式声明某些包应该被安装,并且这些包可以从当前的基础环境中获取最新状态而不是网络仓库。虽然 Conda 并未提供直接名为 "--inherit" 的选项用于简单地使新建环境默认携带 Base 中已存在的全部软件列表,但是可以在命令行里手动列举那些必要的库名作为附加参数传递给 conda: ```bash conda create --name new_env_with_base_packages python=3.8 numpy pandas matplotlib scipy seaborn jupyterlab ``` 上述例子中假设您已经在 Base 下面预先装好了像 NumPy, Pandas 这样的科学计算工具集;那么这里再次提及它们的名字即意味着告诉系统:“请按照 Base 版本号为准去准备对应组件”。 另外一种间接达到类似效果的办法就是先记录下现有 Base 所含有的完整清单文件 requirements.txt ,之后再依据这个文档批量加载至任何自定义命名的新空间之中: ```bash # 导出 Base 当前所有的 package 列表保存成文本形式 conda list -e > specs-file.txt # 使用刚才生成好的 spec 来构建另一个全新的带有相同内容结构的新区域 conda create --name another_new_env --file specs-file.txt ``` 以上两种途径都可以有效地解决关于如何让 anaconda 子域沿袭母版设定的问题。不过值得注意的一点是,在实际开发过程中可能还会遇到权限控制、路径冲突之类的额外挑战,因此建议开发者们始终遵循最佳实践原则——保持各个隔离区之间尽可能独立运作以免互相干扰引发不必要的麻烦。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值