ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【Python学习笔记】 第2章 Python如何运行程序 [打印本页]

作者: 悠扬随风    时间: 2024-9-4 23:16
标题: 【Python学习笔记】 第2章 Python如何运行程序
Python解释器简介

我们在Python的官网下载并安装Python后,它会天生一些组件,包罗解释器和一套支持库。Python的代码必须在解释器中运行。

程序运行

程序员的视角

一个Python程序仅是一个包罗Python语句的文本文件。例:创建script0.py文件,并写上:
  1. print("Hello, world!")
  2. print(2 ** 100)
复制代码
然后,我们在命令行窗口,调用Python执行文件:

Python的视角

在解释器解释文件的内容时,还会做一些别的事变。
字节码编译

如果Python在机器上拥有写入权限,那么它把程序的字节码保存为一个以.pyc为扩展名的文件,这个就是字节码文件。在版本3.2之前,文件与源文件同目录;在版本3.2之后,文件在__pycache__目录中。在这个目录中还保存了编译它们的Python版本信息。
Python这么做的目的是对启动速率优化。下次运行程序时,Python先检查:
然后确定是否要重新编译并天生字节码文件。大型程序中,字节码文件有助于加速启动。
Python虚拟机

Python将程序编译成字节码后,就可以发送到Python虚拟机上执行。Python虚拟机是解释器的一部分,也是解释器的最后一环。
性能的含义

Python的源代码在写好后可以立刻运行。字节码只是特定于Python的一种表现情势。Python仍然须要解释字节码,这使得Python的运行速率不如C/C++。
开发的含义

Python的编译后立刻执行的特性使得开发周期大大缩短。
执行模型的变体

Python的各种实现

CPython:标准Python

最初的、标准的Python
Jython:基于Java的Python

设计目的是与Java编程语言集成。作用是将Python源代码编译成Java字节码,使其可以运行在Java虚拟机上。
IronPython:基于.NET的Python

可以与Windows平台上的.NET框架以及与之对应的Linux开源的Mono编写成的应用相集成。
Stackless:注重并发的Python

它不会在栈上保存状态,使得Python更容易移植到较小的栈架构中。
PyPy:注重速率的Python

执行优化工具

Cython:Python和C的混合

Shed Skin:Python到C++的转换器

Psyco:原先的即时编译器

冻结二进制文件

有时间我们希望可以或许拥有一个把Python程序编译成二进制文件的简单方法。
实现上述想法的工具有:py2exe(Windows)、PyInstaller(Linux、Mac OS X)等等。
未来的可能性

未来也许有新的字节码格式和实现方式的变体将被接纳。比如:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4