anaconda create environment with yaml 创建python虚拟环境报错

anaconda是一个开源的Python发行版本,它可以创建python程序运行的虚拟环境,我们通过之前的文章经介绍过anaconda的安装及基本命令的使用方式。

1、anaconda 导出虚拟环境的步骤和命令

首先,切换到要导出的名字叫做vir_base的环境下, source activate vir_base

然后通过命令 conda env export > ./environment.yaml 把所有环境导出到 当前路径下的 environment.yaml 文件中, 文件内的大概内容如下,

anaconda 导出的yml文件内容

2、在新机器上生成或者更新环境

如果直接通过yaml文件生成环境,则直接通过命令

conda env create -f environment.yaml -p /data/anaconda/env/vir_base

注: -p 是指定安装目录,也可以不带这个参数;不带参数会按照yaml文件带的路径来安装

如果已经提前手动创建了虚拟环境,只是想通过yaml文件来更新环境,则先切换到虚拟环境下, source activate vir_base

然后通过命令 conda env update –file environment.yaml 来更新当前环境

3、遇到的错误

无论是create 或者update环境的时候不断输出如下的提示,

Warning: you have pip-installed dependencies in your environment file, but you do not list pip itself as one of your conda dependencies. Conda may not use the correct pip to install your packages, and they may end up in the wrong place. Please add an explicit pip dependency. I’m adding one for you, but still nagging you.

主要的问题是在yaml或者yml文件中的dependencies 结构下添加pip版本号,如下图报错误是因为 在 1 的位置没有pip版本号,2的位置有,只需要把2 位置的pip版本号复制到上一层的路径下,再次使用文件就不会出错了。

conda环境创建错误处理

anaconda 常用命令 创建 激活 关闭 删除

anaconda是一个开源的Python发行版本,包含了大量的科学包,其包含了conda、Python等180多个科学包及其依赖项。Anaconda 的下载文件比较大,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。

安装环境: linux centos系统

1、安装与升级、卸载

anaconda的官方下载地址下载Linux版本,也可以在Linux系统中通过wget + down_url的方式下载所需的sh文件,下载完成后直接运行sh文件即可。

bash Anaconda3-2019.07-Linux-x86_64.sh

一路下一步,一直到提示你是否默认安装到/root/anaconda3这个目录下的时候,一般Linux系统的root目录磁盘容量不大,随着anaconda创建的虚拟环境或者安装的包越来越多就会对系统盘的空间造成压力,我们这个时候要自己指定一个安装路径,例如,输入/data/anaconda3(如果有/data盘),然后回车。

一路默认安装完成后 ,一般情况在用户根目录的 .bashrc文件中会有如下内容,下边的内容以>>> conda initialize >>>开始和结束,建议读者将这些内容都注释掉,因为不注释掉每次登陆linux session都会默认进入anaconda的base环境中,尤其是跟不同项目在同一台机器的清下,会对其它的项目环境造成影响。

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
#__conda_setup="$('/data/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
#if [ $? -eq 0 ]; then
#    eval "$__conda_setup"
#else
#    if [ -f "/data/anaconda3/etc/profile.d/conda.sh" ]; then
#        . "/data/anaconda3/etc/profile.d/conda.sh"
#    else
#        export PATH="/data/anaconda3/bin:$PATH"
#    fi
#fi
#unset __conda_setup
# <<< conda initialize <<<

注释掉.bashrc的conda initallize后,我们可能没法直接找到conda命令,需要我们在注释掉之后把export PATH=”/data/anaconda3/bin:$PATH” 放开到该文件的其它行。wq保存退出后,source .bashrc。即可招到conda命令

conda update conda          #基本升级
conda update anaconda       #大的升级
conda update anaconda-navigator    //update最新版本的anaconda-navigator   
# 删除只需要直接删掉安装路径下的整个文件夹即可
rm -rf /data/anaconda3  
# 最后,建议清理下.bashrc中的Anaconda路径。

2、conda基本命令

conda create -n xxxx python=3.5   #创建python3.5的xxxx虚拟环境
conda activate xxxx               #开启xxxx环境
conda deactivate                  #关闭环境
conda env list                    #显示所有的虚拟环境
conda info --envs                 #显示所有的虚拟环境
conda list         #查看已经安装的文件包
conda list  -n xxx       #指定查看xxx虚拟环境下安装的package
conda update xxx   #更新xxx文件包
conda uninstall xxx   #卸载xxx文件包

有的时候,进入特定环境的时候输入conda activate会无效,我们只需要修改成一下命令即可。

source activate xxxx               #开启xxxx环境
source deactivate                  #关闭环境

3、环境的创建、删除、清理

conda create -n xxxx python==3.7 // 创建名字是xxxx且默认python版本是3.7的虚拟环境
conda remove -n xxxx --all   //创建xxxx虚拟环境
conda clean -p      //删除没有用的包
conda clean -t      //删除tar包
conda clean -y --all //删除所有的安装包及cache
//克隆oldname环境为newname环境
conda create --name newname --clone oldname 
//彻底删除旧环境
conda remove --name oldname --all     

4、包的查找、安装、删除

conda search -t conda tensorflow  // 查找
conda show <USER/PACKAGE>  // 显示信息
conda show tensorflow
conda install --channel https://conda.anaconda.org/anaconda tensorflow=1.8.0  // 指定源的安装

anaconda pip 添加国内加速源 镜像源 提升安装速度

我们在使用anaconda或者pip安装python包的时候经常会遇到类似的错误,如Timeout,或者PackagesNotFoundError: The following packages are not available from current channels。一般这些情况都是由于不可描述原因导致的请求连接异常而不能正常安装我们所需要的包。

我们可以指定anaconda的chanles或者在pip安装某个包时临时指定源;通过添加国内的源来加速安装,以及拓宽对所需包的检索范围。

狗头保佑

1、添加清华镜像(源)

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

conda config --set show_channel_urls yes

2、添加豆瓣镜像(源)

conda config --add channels https://pypi.douban.com/anaconda/cloud/conda-forge/
conda config --add channels https://pypi.douban.com/anaconda/cloud/msys2/
conda config --add channels https://pypi.douban.com/anaconda/cloud/bioconda/
conda config --add channels https://pypi.douban.com/anaconda/cloud/menpo/
conda config --add channels https://pypi.douban.com/anaconda/cloud/pytorch/

conda config --set show_channel_urls yes

3、删除源

conda config --remove-key channels

4、pip带源安装

可以临时指定安装所需要的源

pip install -i https://pypi.douban.com/simple tensorflow-gpu==1.14