紫仟纤陌

导航

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文件,正常输出结果则成功

  

posted on 2024-04-03 19:32  紫仟纤陌  阅读(381)  评论(0编辑  收藏  举报