win11使用cython将py文件打包成pyd文件
准备工作:安装Visual Studio C编译器
未安装C编译器时, 编译pyd会出现报错。
你可以使用Visual Studio的C编译器, 或MinGW编译器。由于Visual Studio的C编译器安装方便, 而MinGW较复杂, 这里介绍安装Visual Studio的方法。
所需文件链接: https://pan.baidu.com/s/1lLKdY0o--pAxe2jCs25iiw 提取码: cfy6
启动VisualStudioSetup.exe, 必须选择C++开发, 可选Python开发, 点击安装。
等待安装完成。
生成PYD:
一、新建fun_test.py,写入以下内容:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# cython: language_level=3
import os
def get_sum(a, b): #求两数之和的简单函数,函数名为get_sum;
c = a + b
return c
注意:除了代码前两行常见内容,第3行添加 # cython: language_level=3,以在Python3环境进行编译。
二、在同一文件夹下新建setup.py文件,写入以下内容:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize(["fun_test.py"]))
三、在当前文件夹下,打开Powershell窗口,执行以下命令:
python setup.py build_ext --inplace
将fun_test.cp311-win_amd64.pyd重命名为fun_test.pyd
注意:不要修改fun_test文件名,就是打包后的pyd名字和之前的py名字要一致,不然在导入时会报错“dynamic module does not define module export function (PyInit_person)”
四、在当前文件夹新建run.py,内容如下:
import fun_test
print(fun_test.get_sum(3,9))
五、 运行run.py文件,正常输出结果则成功