conda 迁移环境

2020-07-21  本文已影响0人  limbo1996

更换pc后重建conda环境如果一个一个软件包安装是一个十分麻烦的事情。

conda提供了命令

conda env export -f env.yaml

将当前环境下的所有依赖存储在env.yaml

 name: wes
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - bioconda/label/cf201901
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
  - bioconda
  - conda-forge
  - r
dependencies:
  - yaml=0.1.7=h14c3975_1001
  - zlib=1.2.11=h516909a_1005
  - zstd=1.4.0=h3b9ef0a_0
  - pip:
    - argh==0.26.2
    - biopython==1.74
    - decorator==4.4.0
    - h5py==2.9.0
    - lineedit==0.1.4
    - networkx==2.3
    - pathtools==0.1.2
    - pillow==6.1.0
    - pygments==2.5.2
    - radian==0.4.4
    - rchitect==0.3.17.dev0
    - simanneal==0.5.0
    - tornado==5.0.2
    - wcwidth==0.1.7

以上为一个示例,注意当需要更换平台时,如win上导出到MacOS上创建环境,需要在导出环境时添加--no-build

创建新环境

conda env create -f env.yaml

即可创建新的同名环境。

问题

发现返回信息

CondaEnvException: Pip failed

经过检查,环境成功创建了,但是只安装了conda install命令安装的软件包。
env.yaml文件中的pip之后的依赖包并没有安装。

这时需要在源环境导出pip安装的软件包信息

pip freeze > env.txt

pip安装没有安装的依赖包

pip install -r env.txt

这时,新的报错

g++: error trying to exec 'cc1plus': execvp: 没有那个文件或目录

产生这个报错的原因有两种
主要是g++gcc的原因。
可以查看
https://www.cnblogs.com/skyme/archive/2011/01/19/1939606.html
首先检查gccg++版本是否一致。
如果没有安装

sudo apt-get install build-essential

sudo apt-get install g++

安装缺失的,并保持版本一致。
之后在用pip安装就可以了

pip isntall -r env.txt
上一篇 下一篇

猜你喜欢

热点阅读