Python 文件类型详解 及 生成使用 so/pyd文件

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

选区012.png

使用方法

  • 新建一个main.py文件。
import os
import sys

#将当前so所在的路径添加到sys.path, python是在sys.path路径中找模块的
sys.path.append(os.path.realpath('.'))
from hello import hello 
hello()

选区013.png

pyd文件理论上也是一样的。

发布了60 篇原创文章 · 获赞 0 · 访问量 1412

猜你喜欢

转载自blog.csdn.net/ClassmateLin/article/details/100513015