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