Anaconda常用的Python版本管理工具和Python包管理软件,conda是Anaconda中的具体管理工具,下载地址为:
https://www.anaconda.com/distribution/
该软件较大,下载时间较长。
由于Anaconda原始下载包的地址在国外并且网速不快,所以一般我们选择切换为国内的镜像源:
一般建议选择中科大的镜像,而不是选择清华的,可能清华镜像选择的人过多也或许是它本就网速一般所以下载起来速度有可能比中科大的那个慢上几倍。
==================================================================
镜像源的安装:
中科大镜像源的添加:
命令:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
然后去 .condarc 删除原有的清华镜像。
vim ~/.condarc
将上图第三行删除保存即可。
虽然不建议用清华的镜像源,但是还是给出它的添加方式,如下:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
强烈不建议使用清华的镜像源,真的是太慢了!!!
最后,如果只添加中科大的镜像源, ~/.condarc 内容如下:
Conda 附加库:
这里只给出 中科大 镜像的安装方法:
Conda Forge
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/msys2
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/bioconda
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/menpo
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/中科大镜像的完整添加命令:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
===================================================================
查看 aconda 版本:
conda --version #查看conda的版更新 conda 中的各种包(Python库)
conda upgrade --all
升级自身,即升级 conda, conda 是Anaconda 的管理工具
conda update conda如何更新升级 软件Anaconda ?
# If you want to update to a newer version of Anaconda, type:
#
# $ conda update --prefix /home/devil/anaconda3 anaconda
conda update --prefix ******** anaconda
其中, *********** 是软件 Anaconda安装的路径, --prefix ******** 前缀指定软件的安装路径。
或使用命令:
conda update anacondaconda list
打印在当前环境下所安装的包(Python 库)
上面的命令可以发现,除了更新自身,即升级conda软件( conda update conda ),查看自身版本( conda --version )以外,剩下的命令都是只对当前环境有效的,即(base)环境,也就是说 conda list 是打印出当前环境,即 base 环境下的已安装包, ( conda upgrade --all ) 也是升级 (base) 环境下的各个包。
注:默认条件下默认的环境就是conda安装后的默认自带环境,即 (base) 环境。
=======================================================================
安装新的环境:
Anaconda软件默认的环境为 base , 如果我们需要不同版本的Python和软件版本,那么我们需要安装新的环境。
conda create -n py36 python=3.6 tqdm创立新的环境,命名为py36, 为环境设定Python版本为Python3.6,并为环境安装包 tqdm 。
激活环境:
# To activate this environment, use
#
# $ conda activate py36
conda activate py36退出环境:
# To deactivate an active environment, use
#
# $ conda deactivate
conda deactivate卸载环境中的安装包:
conda remove -n py36 tqdm卸载环境 py36 中的安装包 tqdm 。
为环境安装软件包:
conda install -n py36 tqdm为环境py36 安装软件包 tqdm 。
删除环境中的所有软件包:
( 等同于 删除环境 )
conda remove -n py36 --all删除环境 py36 中的所有软件包 。
需要注意的是,如果软件中并没有安装任何第三方软件包,那么该方法无法删除环境。
如下所示:
这是创建的新环境 dev 并没有含任何第三方软件包。
发现此时使用 conda remove -n dev --all 方法无法删除该环境,如下图所示:
此时采用删除环境命令:
conda env remove -n devconda env remove -n/--name *****环境名
删除 名为dev的环境。
查看环境命令:
conda info --env或
conda info -e或
conda env list如下图:
重命名环境 或者 复制环境
conda create -n py36.bak --clone py36创建一个新的环境 py36.bak 从原先的环境 py36 中复制来的
conda 中没有直接重命名环境的的命令, 我们可以复制(克隆)环境为一个新的名字,然后删除掉原先的那个名字的环境。
========================================================================
分享环境
如果你用conda写了一个程序或者部分代码,现在需要其它人在另一个电脑上运行或接着开发,那么我们可以把自己的开发环境的配置保存到一个文件,然后在另一个电脑上使用conda直接根据该配置环境生成所需要的编程环境。
第一步: 进入到环境中
conda activate py35第二步: 保存环境的配置文件
conda env export > env_py35.yml可以看到 保存的环境配置文件, env_py35.yml 中的具体内容:
第三步: 在新的电脑中按照环境配置文件生成新的环境
conda env create -f env_py35.ymlconda env create -f ********* 按照环境配置文件生成新的环境。
********** 指的是环境配置文件
可以发现在新的电脑总我们根据保存的环境配置文件生成了新的环境。
=========================================================================
查看环境中安装的软件包
conda listconda list 是查看当前环境中的已安装软件包。
conda list -n base查看 命名为 base 的环境中的已安装软件包。
需注意的是不同环境中安装的软件包是不同的。
================================================================
创建新环境时如果没有指定Python版本,那么 Python版本为base环境中的Python版本。创建新环境时候如果既没有指定Python版本也没有指定第三方软件库,那么新环境将使用base环境中的Python版本和软件库,但是它的环境配置文件中配置为空。如下图:
根据上图可以发现,如果新创建环境时不指定Python版本和第三方软件库,那么将使用 base 环境中的Python版本,和base 环境中的第三方库,而将新创建的环境配置文件输出后发现是没有任何配置的,由此可以发现为了不必要的后续开发过程中不断的纠错那么我们在穿件新环境时就应该避免不指定Python版本和第三方软件库的情况。
如果创建新环境时不指定Python版本,但是指定Python第三方软件库,那么新环境将按照base环境中的Python版本创建新的Python环境,并生成新的环境。
===============================================================
查询 软件源中的 库版本:
conda search tensorflow查询 指定版本:
conda search tensorflow==1.12conda search tensorflow-gpu==1.12查询anaconda源中Python包,anaconda会返回供安装的版本号以及安装方法:
anaconda show anaconda/tensorflow-gpuanaconda show anaconda/tensorflowanaconda show anaconda/***********
********** 为Python包名。
===============================================================
使用conda 安装tensorflow时需要注意:
- tensorflow 1.4及以下的不支持cuda9.0,且tensorflow1.0版本以上是不支持cuda8.0以下的。
- tensorflow-gpu1.5以后不支持使用CUDA8.0。cuda8.0对应的cuDNN必须是6.0版的。
也就是说如果你的 CUDA是8.0版本的,那么 cuDNN 就必须是6.0版本的,同时你如果安装tensorflow的话最高版本可以安装到 1.4 , 即tensorflow_1.4 。
但是 conda 可以自动安装 对应的cuda和cuDNN 版本,如下:
注明: 本机物理安装 cuda8.0和cuDNN6.0 。
如下图:
可以发现,即使物理机上安装cuda8.0和cudnn6.0无法安装tensorflow-gpu=1.5, 但是conda自动安装cuda9.0和cudnn7.3, 使其可以安装上tensorflow-gpu=1.5, 十分神奇,从这可以发现conda是将cuda和cudnn也构建到了自己的软件包中了。
当然,该方法虽然很好,但是它却不能把显卡驱动也打包到一起,因为显卡驱动是和你电脑物理显卡版本走的,也就是说你的显卡是1050ti那么你装的显卡驱动最高可能也就支持cuda9.1和cudnn7.3.1 , 但是tensorflow-gpu=1.12(最新版本,conda提供的编译好的包)却要求cuda9.2和cudnn7.3.1,这个情况下你就怎么也不能搞定了,除非你自己编译tensorflow-gpu=1.5(从源码上编译)或许可行,但是这里就不研究了。
如下:
发现最终问题出现在 显卡驱动版本不够, 而1050ti的显卡驱动又不支持更高的cuda版本,所以使用conda提供的编译好的tensorflow-gpu是搞不定了,或许从tensorflow-gpu源码编译可以搞定,这里就不研究了。