Anaconda原理解析及使用_python解释器anaconda

anaconda想必大家都不陌生,属于使用python的重要工具,更是学习机器学习、深度学习的必备工具。在搭建环境过程中,感觉出现的许多问题根源在于对于anaconda的基本原理理解不到位,导致许多无效操作。为此,我重温了一遍anaconda的相关背景知识,希望对各位也能有所收获。

python解释器

首先我们需要从python本身说起,从根源寻找问题,我们在使用python语言编写程序之前需要下载一个python解释器,这才是python的本体,没了python解释器,我们即使写了无比正确优雅的python脚本也没办法运行,那这个解释器在哪呢? 就在你安装python的地方。

所有的第三方包都放在site-packages文件夹里面

最关键的,一个python环境中需要有一个解释器,和一个包集合解释器:解释器根据python的版本大概分为2和3。python2和3之间无法互相兼容,也就是说用python2语法写出来的脚本不一定能在python3的解释器中运行包集合:包集合中包含了自带的包和第三方包,第三方包我们一般通过pip或者easy_install来下载,当一个python环境中不包含这个包,那么引用了这个包的程序不能在该python环境中运行
问题所在:python环境解释完了,那么接下来就要说明这样的环境究竟产生哪些问题,因为anaconda正式为了解决这些问题而诞生的

到底该装 Python2 呢还是 Python3

python2和python3在语法上是不兼容的,那我的机器上应该装python2还是python3呢,可能一开始选一个学习就好了,但是如果你要开发的程序必须使用python2而不能使用python3,那这时候你就不得不再下载一个python2,那这时候环境变量该设谁的目录呢,如果还是切换环境变量岂不是很麻烦虽然目前Python3使用的范围更广,但是Python3小版本之前也存在一些差异

包管理

如果我在本地只有一个python环境那我所有程序用到的各种包都只能放到同一个环境中,导致环境混乱。另外当我将写好的程序放到另一电脑上运行时又会遇到缺少相关包,需要自己手动一个个下载的情况实在是烦人。要是能每个程序开发都选用不同的环境,而开发好之后又能将该程序需要的环境(第三方包)都独立打包出来就好了

与virtualenv的对比

anaconda

是一个包含180+的科学包及其依赖项的发行版本。可以创建一个独立的Pvthon环境,其包含的科学包包括: conda,numpy,scipy,ipython notebook等

virtualenv

用于创建一个独立的Python环境的工具,新环境中需要手动安装需要的三方包

pip与conda比较

依赖项检查

pip

不一定会展示所需其他依赖包

安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误

conda

列出所需其他依赖包
安装包时自动安装其依赖项
可以便捷地在包的不同版本中自由切换

环境管理

pip

维护多个环境难度较大

conda

比较方便地在不同环境之间进行切换,环境管理较为简单

对系统自带Python的影响

pip

在系统自带Pvthon中包的更新/回退版本/卸载将影响其他程序

conda

不会影响系统自带Python

适用语言

pip

仅适用于Python

conda

适用于Python,R,Ruby, Lua,Scala,Java,JavaScript,C/C++,FORTRAN

conda结合了pip和virtualenv的功能

Anaconda虚拟环境的管理

打开anaconda prompt

创建新环境

conda create --name <env_name> <package_names>

例如:  conda create --name env1 python==2.7

创建了一个名为env1的环境,python版本为2.7

默认情况下,新创建的环境将会保存在/Users/<user_name>/anaconda3/env目录下,其中,<user_name>为当前用户的用户名

env_name:即为新创建的环境名,建议使用英文进行命名,且不加空格,名称两边不加尖括号“<>”

package_names:即安装在环境中的包名,名称两边不添加尖括号<>

如果要在新创建的环境中创建多个包,则直接在<package_names>后以空格隔开,添加多个包名即可。如:a,即创建了一个名为“python3”的环境,环境中安装版本为3.7的python,同时也安装了numpy和pandas

–name 也可以替换成-n

说明:

  • 如果创建环境后安装Python时没有指定Python的版本,那么将会安装与Anaconda版本相同的Python版本,即如果安装Anaconda第2版,则会自动安装Python 2.x;如果安装Anaconda第3版,则会自动安装Python 3.x
  • 当成功切换环境之后,在该行行首将以"(env_name)“或”[env_name]"开头。其中, “"env_name"为切换到的环境名
退出环境至物理环境

deactivate

显示已创建环境

conda info  --envs

或者 conda info -e  或者  conda env list

结果中*所在行即为当前所在环境

复制环境

conda create --name <new__env_name> --clone <copied_env_name>

copied_env_name:即为被复制/克隆环境名,环境名两边不加尖括号"<>"
new_env_name∶即为复制之后新环境的名称,环境名两边不加尖括号"<>"

删除环境

conda remove --name <env_name> --all

包管理

获取当前环境中已安装的包信息

conda list

查找可供安装的包版本

  • 精确查找

conda search --full-name <package_full_name >

–full-name:为精确查找的参数
<package_full_name>︰是被查找包的全名。包名两边不加尖括号"<>"

  • 模糊查找

conda search

:是查找含有“此字段"的包名。此字段两边不加尖括号"<>”

安装包

在当前环境中安装包

conda install <package_name>

指定版本号

conda install <package_name>=versiono

在指定环境中安装包

conda install --name <env_name> <package_name >

使用pip安装包

pip install <package_name>

说明:当使用conda install无法进行安装时,可以使用pip进行安装

注意:

  • pip只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用pip进行安装包,则需要先切换到指定环境中,再使用pip命令安装包
  • pip无法更新python,因为pip并不将python视为包
  • pip可以安装一些conda无法安装的包;conda也可以安装一些pip无法安装的包。因此当使用一种命令无法安装包时,可以尝试用另—种命令

从Anaconda.org安装包

说明:当使用conda install 无法进行安装时,可以考虑从Anaconda.org中获取安装包的命令,并进行安装.浏览器中输入http:/ /anaconda.org (无需注册)

复制To install this package with conda run:"下方的命令,并粘贴在终端中执行

卸载包

卸载当前环境中的包

conda remove <package_name>

卸载指定环境中的包

conda remove --name <env_name> <package_name>

更新包

更新指定包

conda update <package_name>或conda upgrade <package_name>

说明︰更新多个指定包,则包名以空格隔开,向后排列。例如:conda updatepandas numpy matplotlib即更新pandas、numpy、matplotlib包
更新所有包

conda update --all或conda upgrade --all

说明:在安装Anaconda之后执行上述命令更新Anaconda中的所有包至最新版本,便于使用。

如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值