首页 > 其他分享 >win11使用cython将py文件打包成pyd文件

win11使用cython将py文件打包成pyd文件

时间:2024-04-03 19:47:29浏览次数:15  
标签:文件 cython py test 编译器 fun 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文件,正常输出结果则成功

  

标签:文件,cython,py,test,编译器,fun,pyd
From: https://www.cnblogs.com/idreamcn/p/18043564

相关文章

  • python 遍历字典
    在Python中,遍历字典(dictionary)通常涉及遍历字典的键(keys)、值(values)或者同时遍历键和值。以下是几种常见的遍历字典的方法:遍历字典的键(keys):pythonmy_dict={'a':1,'b':2,'c':3}forkeyinmy_dict.keys():print(key)遍历字典的值(values):pythonforvalue......
  • python自动化——pytest
    pytest,之前复习整理:https://www.cnblogs.com/xiaobaibailongma/category/1947423.html                                                 123......
  • Python函数(一):函数的声明、调用以及参数的使用
    目录为何要用到函数函数的定义和调用函数的参数参数的传递参数的类型 return语句为何要用到函数通常我们编写一段代码是为了实现特定的功能,比如想得到一段数字序列中的最大值、最小值和平均值并输出一个字典,编写一段代码如下:num=[96,85,69,82,52,99,72]m......
  • Python 使用matplotlib创建各种静态、动态、交互式和3D图表的功能
    在Python中,你可以使用各种库来创建和显示图表。其中,最常用的库之一是matplotlib,它提供了创建各种静态、动态、交互式和3D图表的功能。另一个流行的库是seaborn,它基于matplotlib,并提供了更高级别的界面,用于绘制有吸引力的统计图形。以下是一个使用matplotlib创建并显示简单折线......
  • Python环境下基于小波分析的Linear电磁谱降噪
    小波变换以其良好的时频局部化特性,成功地解决了保护信号局部性和抑制噪声之间的矛盾,因此小波技术在信号降噪中得到了广泛的研究,并获得了非常好的应用效果。小波降噪中最常用的方法是小波阈值降噪。基于小波变换的阈值降噪关键是要解决两个问题:阈值的选取和阈值函数的确定,目前常......
  • Python中处理JSON字段时,和如何将Python对象转换为JSON字符串
    在Python中处理JSON字段时,通常使用内置的json模块。这个模块允许你将Python对象转换为JSON字符串,以及将JSON字符串解析为Python对象。以下是一些常见的JSON字段处理操作:1.将Python对象转换为JSON字符串python复制importjson#定义一个Python字典data={  "name"......
  • 软测WebUI Python安装selenium模块失败,用VSCode安装成功
    Dos命令行下Python安装selenium模块失败,安了python,pip也好着呢,安装失败,网上没有查到类似报错。  报错还有一些,截图不全使用vsc安装selenium模块,成功了。  ......
  • 2台电脑通过网线传输文件
    假设PCB要传文件给PCAPS:很多小文件,建议PCB先打包成压缩包.zip双方:手动设置静态IP地址PCIP默认网关Gateway子网掩码(自动生成)PCA198.168.11.1198.168.11.1255.255.255.0PCB192.168.11.2198.168.11.1255.255.255.0PCA可以ping192.168.11.2,看......
  • Python实现【贪吃蛇大作战】+源码
    文章目录前言:一、游戏概述1.游戏玩法2.游戏特色二、游戏规则三、工具选择四、主要技术pygame库numpy库cocos2d五、源码分享六、项目地址前言:今天的GitHub小游戏分享,我们将聚焦于一个经典而又极富趣味性的游戏——贪吃蛇大作战。这款游戏不仅考验玩家的反应速度......
  • YOLOV4:You Only Look Once目标检测模型在pytorch当中的实现
    文章目录概要整体架构流程技术名词解释技术细节小结源码链接:GitHub-AlexeyAB/darknet:YOLOv4/Scaled-YOLOv4/YOLO-NeuralNetworksforObjectDetection(WindowsandLinuxversionofDarknet)概要1.1模型架构YOLOv4项目实现了YOLOv4算法的网络架构,......