以下文章来源于气象备忘录 ,作者蓝胖 小姜
conda可以很方便地管理不同项目的环境,避免相互污染,常用命令如下:
代码语言:javascript复制# 创建环境
conda create -n py36 python=3.6
# 激活环境
source activate py36
# 退出环境
source deactivate
# 删除环境
conda remove -n py36 --all
# 查看所有环境
conda env list
# 查看当前环境安装包
conda list
在日常的工作和学习中,可能手头有很多服务器,在一台服务器上搭建了合适的开发环境,如何高效地复制到所有机器上呢?这里主要以目标服务器是否可以联网,介绍了如何方便地迁移虚拟环境。
- 目标机器可以访问互联网:
- 先激活需要迁移的环境,然后通过conda env export > pyn_env.yml 导出当前环境的一些配置信息
- 将 pyn_env.yml 文件拷贝到目标机器上,执行 conda env create -f pyn_env.yml(确保目标机器已经安装了Anaconda,下同)。
- 目标机器不可以访问互联网:
使用Conda-Pack来进行环境的打包和迁移
- 在可以联网的机器上配置好需要的环境后,通过conda install -c conda-forge conda-pack 安装打包程序;
- 通过 conda pack -n wrfpy -o wrfpy.tar.gz 将需要的环境打包,并拷贝到目标机器;
- 在目标机器上新建目录 mkdir -p $Anaconda/envs/wrfpy;
- 解压 tar -xzf wrfpy.tar.gz -C $Anaconda/envs/wrfpy;
- 此时 conda env list 就可以看到该环境了;
- activate wrfpy 激活环境,执行 conda-unpack,大功告成!
自学气象人小编补充:
如果需要迁移的是base环境的话,在可以联网的机器上操作时,可能会报下面的错误:
这个时候我们需要对pyn_env.yml文件进行简单的修改。通过 vim pyn_env.yml 命令将 yml 文件中的 name 由 base 改成任意非 base 的环境名即可成功运行,如 wrf_env 。
此外,如果想要把刚刚迁入的新环境作为默认环境,即登录 shell 时自动进入该环境的话,可以通过修改 ~/.bash_profile 文件,只需要在该文件中加入一行 conda activate wrf_env 。至于为什么建议修改 .bash_ profile 而不是 .bashrc ,可以见【科研利器】关于 “.bash_profile” 和 “.bashrc”区别的总结。
参考:
代码语言:javascript复制https://docs.conda.io/projects/conda/en/latest/userguide/tasks/manage-environments.html#create-env-from-file