python 编译成.pyd/.so

pyd文件是D语言编写的dll文件,具有较高的安全性和运行效率。在Windows和Linux上,编译pyd文件需要Cython和setuptools库。在Windows上,还需要MicrosoftVisualC++14.0。编译过程包括安装依赖,创建setup.py脚本,然后运行pythonsetup.pybuild_ext--inplace来编译。编译后的pyd文件名与源py文件相关,并且在导入时Python会自动识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所谓pyd文件,就是D语言(C/C++综合进化版本)编写的一种dll 文件,相比起容易被反编译的pyc文件,pyd文件目前还没有办法进行反编译,只能被反汇编,因此有很高的安全性,并且运行效率也比较高。

在windows会编译出pyd,linux会编译称.so


编译前准备

要想编译pyd,首先要通过pip安装Cython和setuptools库。

pip install cython
pip install setuptools

除了Cython和setuptools这两个python库以外,在windows上编译pyd,还需要安装Microsoft Visual C++ 14.0

pyd的编译

准备好编译环境后就可以进行编译了,首先创建一个用于编译的py脚本例如setup.py,内容如下

import os

import setuptools
from distutils.core import setup
from Cython.Build import cythonize
from distutils.extension import Extension

extensions = []
if os.path.exists('./test.py'):
    extensions.append(Extension('test', ['test.py']))

setup(ext_modules=cythonize(extensions, compiler_directives={'language_level': 3}), )

其中的test.py就是要编译的python脚本,而language_level参数为2代表python版本为2.X,如果要打包python3.X版本时,这个参数应该为3。

test.py文件内容image

最后再用python运行这个setup.py并加上两个参数,即可开始编译pyd。python setup.py build_ext --inplace

image

image

image

对于python2.X版本,编译好的pyd文件名称和py文件相同,例如test.py编译完后为test.pyd;而对于python3.X版本,编译好的pyd文件会带有后缀,例如test.py用64位windows系统上的python3.7编译后是test.cp37-win_amd64.pyd,这个pyd名称不要修改,python在import库时会自动识别。

引用使用

删掉test.py文件,然后引用image
执行结果image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值