之前在不同时间段接触过Java、C/C++、C#等语言,但是止步于基础语法,仅仅会编写简单几十行代码,后面又学习了python。回顾python的基础,我将记录自己初学中没有在意的、没有记住的或者没有弄明白的知识点,记录下来以方便后续学习。这一部分主要讲述:解释型语言的原理及特点、Anaconda的安装和配置(顺便介绍了lib和script文件夹)、pip和conda命令的区别
- python是一种解释型语言(文中内容参考这里)
学python的第一天,一句话一定会看到“python是一种解释型语言”,那么什么是解释型语言。
计算机不能直接的理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言的编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。解释型语言是指它常用的执行机制是使用一个“解释器”来执行,解释器对于程序是一句一句“翻译”成机器语言来一句一句执行。
Java和python都是解释型语言。区别如下:
总结:(参考这里)
1、原理:C/C++等编译型语言要首先将代码全部写完,然后再通过某个编译器生成一个二进制的可执行文件(*.exe);python是翻译一句执行一句,不需要将全部代码写完,运行的不一定是完全的二进制内容,因为它是边解释(成二进制),边运行。所以当它执行看出效果的时候,程序后半部分还不一定解释成二进制呢。所以它是“三心二意”的做事,速度没有前者快。如此一来,python的代码修改更灵活,可以快速部署,不需要停机维护,但是缺点是每次运行的时候都要解释一遍,速度上不如编译型语言。
2、可移植性: 编译型语言是运行二进制内容,所以:一旦CPU指令系统改变,之前的二进制文件可能运行不了。比如:如果到其他硬件平台上运行,就可能出现错误,就需要根据该平台重新编译出新的二进制文件。所以:可移植性差;而解释型语言则不然。它并没有实现弄成什么二进制内容,而是在需要的时候才开始编译、运行。
- Anaconda的安装和虚拟环境的配置
除此之外还有个很重要的东西, Lib, 也就是python包文件, 包括自带的包和第三方包。
-
Anaconda、conda、pip、virtualenv的区别(参考链接)
Anaconda
Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。
conda
(1)conda是包及其依赖项和环境的管理工具。 (2)适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。(3)适用平台:Windows, macOS, Linux (4)用途: 快速安装、运行和升级包及其依赖项。 在计算机中便捷地创建、保存、加载和切换环境。 (5)conda为Python项目而创造,但可适用于上述的多种语言。 (6)conda包和环境管理器包含于Anaconda的所有版本当中。
如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。——conda官方网站
pip
(1)pip是用于安装和管理软件包的包管理器。 (2)pip编写语言:Python。 (3)Python中默认安装的版本: Python 2.7.9及后续版本:默认安装,命令为pip Python 3.4及后续版本:默认安装,命令为pip3
④ virtualenv
(1)virtualenv:用于创建一个独立的Python环境的工具。 (2)解决问题: 1、当一个程序需要使用Python 2.7版本,而另一个程序需要使用Python 3.6版本,如何同时使用这两个程序? 2、如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小心升级了本不该升级的程序时,将会对其他的程序造成影响。 3、如果想要安装程序并在程序运行时对其库或库的版本进行修改,都会导致程序的中断。 4、在共享主机时,无法在全局site-packages目录中安装包。 (3)virtualenv将会为它自己的安装目录创建一个环境,这并不与其他virtualenv环境共享库;同时也可以选择性地不连接已安装的全局库。
pip 与 conda 比较
→ 依赖项检查
pip: (1)不一定会展示所需其他依赖包。 (2)安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。 conda: (1)列出所需其他依赖包。 (2)安装包时自动安装其依赖项。 (3)可以便捷地在包的不同版本中自由切换。
→ 环境管理
pip:维护多个环境难度较大。
conda:比较方便地在不同环境之间进行切换,环境管理较为简单。
→ 对系统自带Python的影响 pip:在系统自带Python中包的**更新/回退版本/卸载将影响其他程序。 conda:不会影响系统自带Python。
→ 适用语言
pip:仅适用于Python。
conda:适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
conda与pip、virtualenv的关系
conda结合了pip和virtualenv的功能。