ToB企服应用市场:ToB评测及商务社交产业平台
标题:
【Python学习笔记】 第2章 Python如何运行程序
[打印本页]
作者:
悠扬随风
时间:
2024-9-4 23:16
标题:
【Python学习笔记】 第2章 Python如何运行程序
Python解释器简介
我们在Python的
官网
下载并安装Python后,它会天生一些组件,包罗解释器和一套支持库。Python的代码必须在解释器中运行。
程序运行
程序员的视角
一个Python程序仅是一个包罗Python语句的文本文件。例:创建script0.py文件,并写上:
print("Hello, world!")
print(2 ** 100)
复制代码
然后,我们在命令行窗口,调用Python执行文件:
Python的视角
在解释器解释文件的内容时,还会做一些别的事变。
字节码编译
如果Python在机器上拥有写入权限,那么它把程序的字节码保存为一个以.pyc为扩展名的文件,这个就是字节码文件。在版本3.2之前,文件与源文件同目录;在版本3.2之后,文件在__pycache__目录中。在这个目录中还保存了编译它们的Python版本信息。
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)等等。
未来的可能性
未来也许有新的字节码格式和实现方式的变体将被接纳。比如:
Parrot:提供多种语言通用的字节码格式、虚拟机以及优化技术。
Unladen Swallow:将Python提速至少5倍。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4