解释器

Python 既然是一门解释型语言,自然与编译型语言不同。编译型语言需要经过编译器编译成为二进制文件或者字节码文件后才能由计算机执行。而解释型语言一般是由解释器实时将代码转译交由计算机执行的。从这个流程上也可以看出,解释型的语言在运行效率上的确是要比编译型语言慢。但是解释型语言一般都是比编译型语言高一个层级的存在,所以往往拥有更强的扩展能力,并且更加自由,这也是为什么解释型语言更多是以脚本语言的形式出现。

既然是解释型语言,那么 Python 必然具备运行代码所必须的解释器。Python 的解释器是两个可执行文件,Windows 中为 python.exe 和 pythonw.exe,Linux 和 macOS 中都为 python 和 pythonw(可能部分可执行文件带有版本标记)。其中名称为 python 的可执行文件为命令行解释器,也就是通常所说的运行时会出现黑界面的解释器;而 pythonw 则是没有黑界面的解释器。

一般情况下,只有运行 GUI 应用时,才使用 pythonw 解释器;大部分脚本都是使用 python 解释器运行的。

交互式运行

直接在命令行中运行不带有任何参数的 python 命令,可以进入交互式运行模式。在这个模式下,python 可以立刻执行输入的任何语句。

在交互式运行模式下,执行语句exit()可以退出。

命令行脚本

将代码保存在后缀为.py的文件中,使用python file.py的命令运行保存的代码文件,就是最常用的脚本执行方法。

如果运行的是一个完整的项目,那么python命令后指示运行的代码文件,需要是项目的入口文件。

bash 脚本

对于 Linux 以及 macOS 系统来说,bash 脚本是一种特殊的脚本,其可以使用任何解释型语言编写,Python 也不例外。bash 脚本的执行不需要使用python <filename>的格式,而且 bash 脚本的文件名后缀一般为.sh,并且使用chmod +x赋予可执行属性。bash 脚本在终端中可以直接使用./bash.sh的方式执行。

bash 脚本与 Python 源代码文件的区别,就是在文件的最开头,声明了用于解释执行 bash 脚本的解释器。使用 Python 书写 bash 脚本,脚本的首行声明如下:

#!/usr/local/bin/python3

或者还可以使用下面这种标注,下面这种标注会通过环境变量寻找 Python3 解释器的位置。

#!/usr/bin/env python3

其他 Linux 发行版中安装 Python 之后,在书写 bash 脚本之前,需要自行寻找一下解释器所在的位置以及确定一下解释器的版本,以防运行出错。