conda常用命令
conda
可以安装数据、图片、Notebook 等,还可以管理 Python 包,和 Anaconda Navigator 功能类似。 conda
安装包时,dependency 包也会一起自动安装。
查看版本
1 2 conda -V conda --version
配置
1 2 3 4 5 6 7 8 9 10 conda config --show conda config --show channels conda config --add channels XXX conda config --set show_channel_urls yes conda config --remove channels XXX
安装包
1 2 conda install * conda install attrs=17.3
这表示安装MAJOR = 17
和 MINOR = 3
的最新 PATCH
的版本
注意:有些包默认不是安装最新的,此时会有一些依赖问题(老板本包不兼容现在的一些新的包),所以最好用指定版本
1 conda install 'bar-lib=1.0|1.4*'
安装bar-lib
包的1.0
版本或者1.4
版本,并且注意符号'
。
1 conda install 'bar-lib>=1.3.4,<1.1'
1 2 3 conda install -c conda-forge youtube-dl conda install --channel https://conda.anaconda.org/anaconda tensorflow=1.8.0
youtube-dl
包不再默认通道内,因此要给定-c
(即--channel
)指定通道(可以通过这里:Anaconda.org 查找相关软件包以及通道)
更新包
1 2 3 4 conda update conda anaconda anaconda-navigator conda update --all
删除包
查询包
1 2 3 conda search attrs conda list attrs
高级搜索:
1 conda search -c conda-forge -c sseefeld -c gbrener --platform win-64 textadapter
查找发布者conda-forge
、sseefeld
、gbrener
的包
-c
表示--channel
--platform win-64
限制了平台,还有osx-64
可以参考
可以通过这里:Anaconda.org 查找相关软件包以及通道
这样可以安装自己需要的包,还能限制版本。
anaconda search *
可以查询包对应的channels和platforms。
查询依赖(dependency)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 $ conda info cytoolz=0.8.2=py36_0 cytoolz 0.8.2 py36_0 -------------------- file name : cytoolz-0.8.2-py36_0.tar.bz2 name : cytoolz version : 0.8.2 build string: py36_0 build number: 0 channel : https://repo.continuum.io/pkgs/free size : 352 KB arch : x86_64constrains : () date : 2016-12-23license : BSD md5 : cd6068b2389b1596147cc7218f0438fd platform : darwin subdir : osx-64 url : https://repo.continuum.io/pkgs/free/osx-64/cytoolz-0.8.2-py36_0.tar.bz2 dependencies: python 3.6* toolz >=0.8.0
如果需要使用*
,就需要使用'
引用起来:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 $ conda info 'cytoolz=0.8.2=py36*' cytoolz 0.8.2 py36_0 -------------------- file name : cytoolz-0.8.2-py36_0.tar.bz2 name : cytoolz version : 0.8.2 build string: py36_0 build number: 0 channel : https://repo.anaconda.com/pkgs/free/linux-64 size : 1.0 MB arch : x86_64constrains : () date : 2016-12-23license : BSD md5 : 857a2eef4ab39d987e493f5edf2e2163 platform : linux subdir : linux-64 url : https://repo.anaconda.com/pkgs/free/linux-64/cytoolz-0.8.2-py36_0.tar.bz2 dependencies: python 3.6* toolz >=0.8.0 cytoolz 0.8.2 py36h708bfd4_0 ---------------------------- file name : cytoolz-0.8.2-py36h708bfd4_0.tar.bz2 name : cytoolz version : 0.8.2 build string: py36h708bfd4_0 build number: 0 channel : https://repo.anaconda.com/pkgs/main/linux-64 size : 364 KB arch : Noneconstrains : () license : BSD 3-Clause md5 : 92977087dc2a463e99a1d993f81f40dd platform : None subdir : linux-64 timestamp : 1505740267776 url : https://repo.anaconda.com/pkgs/main/linux-64/cytoolz-0.8.2-py36h708bfd4_0.tar.bz2 dependencies: libgcc-ng >=7.2.0 python >=3.6,<3.7.0a0 toolz >=0.8.0
版本号
更多可以看这里 。
查看所有安装包的版本
1 2 3 4 5 6 7 8 9 conda list conda list --export > package-list.txt conda list pandas $ conda list 'numpy|pandas' numpy 1.14.0 py36h3dfced4_1 pandas 0.22.0 py36hf484d3e_0
conda list
配合正则化标准可以查询对应的格式
1 2 $ conda list -n pd-2015 'pandas|numpy' $ conda list --name pd-2015 'pandas|numpy'
新建环境
1 conda create --name base2 python=3.6
或者通过yml
文件来新建:
1 conda env create --file base2.yml -n base2
yml
文件里面一般有name,因此可以不写:
1 2 3 4 5 6 7 8 (base) $ cat shared-config.yml name: functional-data channels: - defaults dependencies: - python=3 - cytoolz - attrs
删除环境
1 conda env remove --name ENVNAME
导出环境
1 (base) $ conda env export -n course-env -f course-env.yml
重命名环境
conda 其实没有重命名指令,实现重命名是通过 clone 完成的
1 2 3 4 conda create -n tf --clone rcnn conda remove -n rcnn --all
环境切换
1 2 3 4 5 6 7 8 9 10 11 12 13 (base) $ conda activate course-env (course-env) $ conda env list course-env * /.conda/envs/course-env pd-2015 /.conda/envs/pd-2015 py1.0 /.conda/envs/py1.0 test-env /.conda/envs/test-env base /home/repl/miniconda (course-env) $ conda activate pd-2015 (pd-2015) $ conda deactivate (base) $
conda activate *
切换环境
conda deactivate
切回默认环境
查询所有环境
1 2 3 4 5 6 7 8 9 $ conda env list course-env /.conda/envs/course-env pd-2015 /.conda/envs/pd-2015 py1.0 /.conda/envs/py1.0 test-env /.conda/envs/test-env base /home/repl/miniconda course-project * /home/repl/miniconda/envs/course-project
清理
1 2 3 conda clean -p conda clean -t conda clean -y --all
cuda路径设置
区别
在使用 Anaconda 安装 Pytorch 深度学习框架时,可以发现 Anaconda 会自动为我们安装 cudatoolkit。但是 cudatoolkit 与通过 Nvidia 官方提供的 CUDA Toolkit 是不一样的:
官方CUDA Toolkit:一个完整的工具安装包。提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。可以安装、开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。具体组成可参考 CUDA Toolkit Major Components .
Anaconda中cudatoolkit:主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit
所以需要手动安装 CUDA Toolkit ,可以根据不同环境中的cudatoolkit来决定下载的版本:
1 2 3 4 conda list | grep cuda conda list | grep pytorch
注意,不能通过如下方法获得版本:
1 2 import torchtorch.version.cuda
上述是位于 torch/version.py 中的一个变量,在基于源码进行编译时确定
但是可以通过如下方法:
1 2 import torch.utils.cpp_extensiontorch.utils.cpp_extension.CUDA_HOME
安装
官方安装指导手册链接:Installation Guide Linux
一般来说推荐直接下载deb(local)
直接安装即可,所有东西都会默认配置完毕。
默认情况下,CUDA Toolkit会:
安装CUDA驱动
安装CUDA Toolkit,默认在/usr/local/cuda-xx.x
,并链接到/usr/local/cuda
安装CUDA Samples,默认在$(HOME)/NVIDIA_CUDA-xx.x_Samples
但是在没有root权限的机器上,推荐下载runfile(local)
,并通过如下命令交互式安装到当前家目录下:
1 sh cuda_xxxx_linux.run --toolkit --toolkitpath=<path> --silent
--driver
:安装CUDA驱动
--toolkit
:安装CUDA Toolkit
--toolkitpath=<path>
:CUDA Toolkit路径(绝对路径)
--samples
:安装CUDA Samples
--samplespath=<path>
:CUDA Samples路径(绝对路径)
--silent
:静默安装,需要上述至少一个选项
--override
:忽略编译器,第三方库和工具包检测检查,这些检查将阻止CUDA Toolkit和CUDA Samples的安装。
虚拟环境设置
不同的虚拟环境需要配上不同的cuda版本,此时需要设置CUDA_HOME
、LD_LIBRARY_PATH
等环境变量,这里可以借助conda的配置脚本activate.sh
和deactivate.sh
首先找到conda的安装路径:
1 2 3 4 conda activate pytorch echo ${CONDA_PREFIX}
假设得到的路径为:/home/username/anaconda3/envs/pytorch
,则新建文件夹并编写脚本:
1 2 3 4 mkdir -p /home/username/anaconda3/envs/pytorch/etc/conda/activate.dvi /home/username/anaconda3/envs/pytorch/etc/conda/activate.d/activate.sh
脚本内容为:
1 2 3 4 ORIGINAL_CUDA_HOME=$CUDA_HOME ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH export CUDA_HOME=/usr/local/cuda-10.1export LD_LIBRARY_PATH=$CUDA_HOME /lib64:$LD_LIBRARY_PATH
默认nvcc
在CUDA_HOME/bin
下
通过执行echo $CUDA_HOME
能够查看修改后的变量即可
退出脚本路径及内容如下:
1 2 3 4 mkdir -p /home/username/anaconda3/envs/pytorch/etc/conda/deactivate.dvi /home/username/anaconda3/envs/pytorch/etc/conda/deactivate.d/deactivate.sh
内容:
1 2 3 4 export CUDA_HOME=$ORIGINAL_CUDA_HOME export LD_LIBRARY_PATH=$ORIGINAL_LD_LIBRARY_PATH unset ORIGINAL_CUDA_HOMEunset ORIGINAL_LD_LIBRARY_PATH