Python解释器
Python是一种解释型语言,我们写好的Python源代码要交给解释器执行。
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py
为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py
文件。
由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。
CPython
当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python
就是启动CPython解释器。
CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>
作为提示符,而IPython用In [序号]:
作为提示符。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
使用Python解释器
Python 解释器在Linux上通常安装于 /usr/local/bin/python
路径下;
在Windows上默认的安装路径为:C:\Program Files\Python38
(38表示当前安装的Python版本是3.8.x)
# 在安装有Python的机器终端中输入python,进入pyhon交互环境
PS C:\Users\zj> python
Python 3.8.8 (tags/v3.8.8:024d805, Feb 19 2021, 13:18:16) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello world!")
hello world!
>>> exit()
# exit()退出交互环境
解释器的运行环境
默认情况下,Python 源码文件的编码是 UTF-8。这种编码支持世界上大多数语言的字符,可以用于字符串字面值、变量、函数名及注释 —— 尽管标准库只用常规的 ASCII 字符作为变量名或函数名,可移植代码都应遵守此约定。要正确显示这些字符,编辑器必须能识别 UTF-8 编码,而且必须使用支持文件中所有字符的字体。
如果不使用默认编码,则要声明文件的编码,文件的第一行要写成特殊注释。句法如下:
# -*- coding: utf-8 -*-
其中,encoding 可以是 Python 支持的任意一种 codecs
。
比如,声明使用 Windows-1252 编码,源码文件要写成:
# -*- coding: cp1252 -*-
第一行 的规则也有一种例外情况,源码以 UNIX "shebang" 行 开头。此时,编码声明要写在文件的第二行。例如:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
CentOS7上安装Python3.12
# 安装依赖
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
wget https://mirrors.huaweicloud.com/python/3.12.2/Python-3.12.2.tar.xz
./configure --prefix=/usr/local/python3 --with-ssl --enable-shared
make clean && make && make install
# 测试
/usr/local/bin/python3 -V
# 可能会报错,找不到共享库,解决方法如下
echo "/usr/local/python3/lib" > /etc/ld.so.conf.d/python3.conf
# 执行ldconfig加载新的共享库
ldconfig
# 配置环境变量
echo 'export PYTHON_HOME=/usr/local/python3' >> /etc/profile
echo 'export PATH=$PYTHON_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
# 命令行测试
python3 -V
# 显示如下表示安装成功
Python 3.12.2