赞
踩
anaconda指的是一个开源的Python发行版本,其包含了Conda、Python、Numpy等180多个科学包及其依赖项。可以帮助Python开发者省去很多安装科学包的工作。并且,不同于venv使用pip只能安装Python包,conda可以安装一些工具软件。
我们如果在电脑上只有一个Python解释器,并且有需要就安装一个包或者模块会不会出现一个尴尬的局面:这段时间我只想写GUI我安装了Pyqt5,但是过段时间我想写爬虫,用不到界面,用到urllib,scrapy等包,再一段时间又是其他包为主,反复的文件管理很累,有没有一个办法就是这个解释器目录下只安装这段时间我需要的,不用就删除呢?有办法,这就是Anaconda。
Anaconda的主要让人选择的功能是:
进入官网;选择Linux,自己电脑合适位数,我选择64位;选择自己想要的版本,这里推荐3.x版本,2.x会被逐渐淘汰;切换到下载目录下执行sudo bash Anaconda3.sh(下载文件名),然后一路yes确认即可。
可以输入命令conda --version检测是否安装成功,命令不存在可能是因为没有加入环境变量,执行如下两条命令。
- echo 'export PATH="/home/zhouchen/anaconda3/bin:$PATH"' >> ~/.bashrc
-
- source ~/.bashrc
这两条命令之后一般就有结果了,第一条是添加环境变量,第二条是重新载入新的环境变量。输入anaconda-navigator命令可以打开GUI界面。
为了加速包的安装,建议使用国内源,命令如下(第三个源针对PyTorch的安装)。
- 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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
- conda config --set show_channel_urls yes
一旦你加入了环境变量下面指令控制台下直接使用,否则需要将该可执行文件自行添加到环境变量) ,下文括号内为命令作用。
conda remove -n 虚拟环境名称--all (虚拟环境删除指令)
conda create -n 虚拟环境名称 python=3.6(虚拟环境创建指令)
source activate 虚拟环境名称 (激活虚拟环境,之后的操作在这一环境下)
conda env list (列出虚拟环境)
conda list (列出当前环境安装的包,不激活默认base这一虚拟环境下安装的包,包括pip安装的)
这里需要注意,主要使用conda的虚拟环境管理器而不是包管理器,因为conda的包并不多。Win + R键输入cmd进入命令行。(注意,虽然Anaconda有GUI界面,但是作为一个专业人员必须学会使用命令行)
执行conda env list可以得到如下结果,这是列出了当前创建的所有虚拟环境,且默认该环境放在如上的Anaconda3文件夹下的envs目录里。
- # conda environments:
- base * C:\Users\16957\Anaconda3
- CryptoGraphy C:\Users\16957\Anaconda3\envs\CryptoGraphy
执行conda create -n test python=3.6,创建一个虚拟环境名为test且指定解释器版本为3.6(可任意指定),下面会让你确认,输入y确定下载需要的包(Anaconda默认有numpy等包和一些安装工具包)并创建环境,等待创建完成即可。创建成功后再次执行上一步命令可以看到多了一个我们创建的环境。
任何包的安装都需要在指定虚拟环境下,下一步如何切换环境(不切换默认base环境下,base环境不特殊标注)。执行source activate test,可以切换到(激活)指定虚拟环境下(此时命令行最前端会特殊标注当前工作的虚拟环境),同样执行source deactivate可以退出当前环境。
执行conda/pip install packagename,会在test环境下,安装指定名称的包,例如这里安装jieba,但是conda install jieba没有找到结果,这是因为conda的库资源很少,使用pip安装即可pip install jieba(pip资源很全)。反之,conda/pip uninstall packagename表示卸载安装的某个包或者多个包。
执行conda list会列出当前环境下安装的包,默认base环境,执行结果如下。可以看到jieba分词安装成功,使用pip uninstall jieba卸载指定包,查询结果显示已经卸载。
- # packages in environment at C:\Users\16957\Anaconda3\envs\test:
- #
- # Name Version Build Channel
- certifi 2018.11.29 py36_0
- jieba 0.39
- pip 18.1 py36_0
- python 3.6.8 h9f7ef89_0
- setuptools 40.6.3 py36_0
- sqlite 3.26.0 he774522_0
- vc 14.1 h0510ff6_4
- vs2015_runtime 14.15.26706 h3a45250_0
- wheel 0.32.3 py36_0
- wincertstore 0.2 py36h7fe50ca_0
执行conda remove -n test --all,可以删除指定名称的虚拟环境(删除当前环境需要先deactivate)。
在某个Project下,自行创建,可以预先指定也可以不指定解释器。点击左上角File--->Settings--->Project:Name--->Project Interpreter,操作类似Windows,但是虚拟环境的位置有点不同,具体见下面这个图片。
一路OK即可,Pycharm加载虚拟环境需要一点时间,右下角进度条完成即可。
我们经常在使用其他的Python开源项目的时候,通过`pip install -r requirements.txt`来一键配置环境,这个`requirements.txt`文件包含了使用pip安装的包,这个文件可以自己编写,也可以通过`pip freeze > requirements.txt`生成,例如在一个PyTorch的环境下执行命令,会生成如下依赖包文件。注意,这里能导出的只是通过pip安装的Python包而已。
事实上,通过 conda我们也可以直接将虚拟环境导出为一个YAML配置文件,命令如下。
conda env export > environment.yaml
它会生成一个包含环境名称、环境源、环境依赖包、通过pip安装的包的配置文件,有这个配置文件,他人使用你的项目就可以通过下面的命令直接创建一个同样的虚拟环境。(当然,你使用他人的项目也是一样。)
conda env create -f environment.yaml
更多人使用Windows,可以见我的博客。写这篇博客的时候Anaconda已经630M的大小,如果不想要很多预编译的包和GUI界面,建议选择miniconda,只有几十M的大小,但是完全依赖命令行,对新手要求有一定基础。但是,作为开发者,还是建议使用Linux操作系统。关于Pycharm中的环境配置类似,参考Windows那篇博客,Macos操作类似Linux。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。