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

标题: python编译相关 [打印本页]

作者: 没腿的鸟    时间: 2024-4-28 01:33
标题: python编译相关
python编译相关

具体编译步骤

Python代码的编译和执行过程可以更详细地描述如下:
整个过程中,Python代码并不会直接编译成机器代码,而是先被解释器解析为字节码,然后由解释器执行字节码。这种解释型的方式使得Python具有跨平台性,因为字节码是与硬件无关的,只要有对应的解释器,Python代码就可以在不同平台上执行。。
如何生成pyc文件

pyo

.pyo 文件与 .pyc 文件相似,只是在优化模式下生成,并且可能会删除一些调试信息和注释。
在 Python 3.x 中,默认情况下,当你使用优化标志(-O 或 -OO)运行 Python 解释器时,生成的字节码文件将使用 .pyo 扩展名而不是 .pyc。这些优化标志会启用优化编译器标志,从而在生成的字节码中删除一些调试信息或注释,以减小字节码文件的大小并提高执行效率。
生成的 .pyo 文件可以被 Python 解释器加载和执行,与 .pyc 文件的使用方式相同。不过需要注意的是,.pyo 文件并不会自动替换 .pyc 文件,而是作为 .pyc 文件的一个替代品。因此,如果你在优化模式下运行了一个 Python 脚本,它会生成一个 .pyo 文件,但如果以普通模式再次运行同一个脚本,它还是会生成 .pyc 文件。
拿到pyc文件后反编译回py文件

利用uncompyle6 这个Python 反编译工具它用于将 Python 字节码文件(.pyc 或 .pyo 文件)反编译回等效的 Python 源代码。
直接在命令行中安装 uncompyle6 就可以用了
  1. pip install uncompyle6
复制代码
安装完成后,就可以使用以下命令将字节码文件反编译为 Python 源代码:
  1. uncompyle6 sample.pyc > sample.py
复制代码
或者,如果是一个 .pyo 文件,也可以用相同的方式进行反编译:
  1. uncompyle6 sample.pyo > sample.py
复制代码
解释和编译

编译器:先整体编译再执行
解释器:边解释边执行
优缺点:
编译方式:运行速度快,但是任何的改动都要整体重新编译。可以脱离编译环境运行。C语言
解释方式:运行速度慢,但是部分的改动不需要整体重新编译。不可以脱离解释器环境运行。python
说是python慢,但是也有优化速度的方式,也就是生成pyc文件的方式。参考了JAVA的字节码做法,但并不完全相同。其作用就是减少重复的解释工作。
Python 有几种不同的解释器

最常见的包括:
除了这些常见的解释器之外,还有一些其他的 Python 解释器,例如 MicroPython(针对嵌入式系统)、Stackless Python(用于并发编程)、Pyston(用于性能优化)、Nuitka(将 Python 代码编译成 C 或 C++)、Shed Skin(将 Python 代码转换成 C++)等。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




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