以.py为扩展名的文件是python代码源文件,可以直接看到代码,由python解释器执行。
以.pyc为扩展名的文件是代码源文件经过编译后的文件。
其执行速度比py文件快。
进行简单编译,并未加密,反编译可以得到源代码。
.pyw文件其本质上和.pyc文件是一质的。
区别在于执行.pyc文件GUI程序会出现控制台,执行点.pyw的GUI程序不会出现控制台。
“python -O 源文件” 即可将 Python 源程序编译成 .pyo 文件,但有时仍得采用 .pyc 作后缀,才能正常运行。
.pyo 文件是相对 .pyc 而言的,优化编译后的 Python 文件。
可以反汇编,但是无法反编译。
.pyd 文件是非 Python,由其它编程语言 “编写-编译” 生成的 Python 扩展模块。
Cython 可将个人基于 Python 语言编写的 Python 模块编译成具有 C 语言特性的 .pyd 或so文件。实质上是先转为C代码再转pyd/so文件。
pip install easycython
pay.py
命名为: pay.pyx
easycython xxx.pyx
自动生成pyd(windows)
或so(linux)
。hello.cpython-36m-x86_64-linux-gnu.so
中间部分去掉,如hello.so
。import os
import sys
#将当前so所在的路径添加到sys.path, python是在sys.path路径中找模块的
sys.path.append(os.path.realpath('.'))
from hello import hello
hello()
pyd文件理论上也是一样的,windows没试,没那个条件。