如何用mingw编译python扩展

使用Mingw-w64编译python代码(or加密python代码) 1.安装Mingw-w64 >> 下载地址https://download.youkuaiyun.com/download/weixin_44503976/20923014 >>解压到E:\ProgramData\Microsoft Visual Studio\mingw64 当然 你也可以自定义别的目录 如下图所示 >>添加环境变量 注意啊,要点击确认和应用 ...... 阅读详情

最近在用Python做一些东西,由于需要发布,所以要使用py2exe打包,不过发现python2.6打包后的文件不给力,在没有安装python或者vs2008的机器上无法运行,估计是dll不对。所以改用python2.5来做程序,发现挺好用的。

 

在用pypcap的时候发现上面发布的编译好的程序比较旧,有一些故障没有解决(比如阻塞还有就是readpkts包列表是同一个地址等问题),在trunk版本上已经解决了。所以需要编译一下。

 

由于使用了pyx格式的,按照install文件的提示,下载Pyrex ,winpcap(版本不用太新,防止目录结构变化)以及mingw,然后修改makefile文件,指明winpcap开发库的地址和正确的配置好pyrex调用,按照说明文件make,应该就可以了,不过提示了无法找到一些符号。

 

根据分析,原来是少了很重要的一个步骤,就是mingw的gcc需要连接.a文件,不能直接连接vs2003编译出来的文件。

 

关键部分出场了,找一个python的dll文件(activeState的好像没有,python官方安装有,所以随便找一个python25.dll就可以了),用pexports导出

pexports python25.dll > python25.def

然后用dlltool(mingw)自带的工具转换到.a文件

dlltool --dllname python25.dll --def python25.def --output-lib libpython25.a

把生成的libpython25.a放到python的libs下

 

再执行mingw32-make,果然顺利生成了pcap.pyd文件,其实就是dll文件啦。

执行python setup.py bdist_wininst,就可以看到打包后的文件了,也就是生成了一个描述文件再加上刚才的pyd文件,但是被封装成exe文件了,用户可以直接点击安装。

 

MinGW gcc环境编译python(英文) 在windows下用MinGW编译python源代码需要对代码做一些简单的修改,本文列举了修改方法,并详细的讲解编译过程中会遇到的问题。 立即下载

相关推荐

mingw64安装

mingw64

win10 mingw 调用python

ubuntu调用python我这里mingw是用msys2的opencv也是msys2装的安装msys2和opencv可以参考这个,例如D:\Miniconda3\envs\DLD:\Miniconda3\envs\DL\libs里,python37.lib复制一份改成python37_d.lib有个玄学的问题,我用不了imgaug这个库。

思维缜密的博客 1095

YOLOv8傻瓜式教程

YOLOv8傻瓜式教程,附带详细参数配置。

Father_of_Python的博客 1万+

MinGW编译Python至pyd踩坑整理

title: MinGW编译Python至pyd踩坑整理 tags: [Python,C·C++] categories: [开发记录,Python] date: 2023-12-12

Birth By Sleep · 韩大狗 1561

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

本文详细介绍了如何使用QJsonObject重构Qt网络API数据解析层,避免常见的JSON解析陷阱。通过安全解析模式、数据绑定和性能优化技巧,帮助开发者构建高效、健壮的解析逻辑,提升代码可维护性和可读性。特别适用于处理复杂嵌套的JSON响应数据场景。

weixin_29011667的博客 229

交通银行金融科技后端开发实习生面试经验

笔试之路的第一个脚印。不足的地方:基本功不扎实,得补。先补sql(先整理出一篇sql语句做题的文章,争取下次笔试拿下这一块),编程题中的SQL写不出来感觉很丢人。然后补八股文,结合一些网上项目教程,来理解常用的一些八股文(比如各种锁)。

T__TSZ的博客 1719

小结两种在Python中导入C语言扩展库的方法

一种是Python文档的推荐方案,采用C API扩展写法:在D:建一个add.c文件,输入//add.c//#include ;static PyObject* add(PyObject *self, PyObject *args); //一定声明为static,把他们限制在这个文件范围里。 几乎所有的参数都是PyObject类型。 在python,每个东西都是

thy专栏 7633

Qt+OpenGL+Cesium三件套:打造高性能3D GIS界面的5个关键技巧

本文深入探讨了如何利用Qt、OpenGL与Cesium三件套打造高性能3D GIS界面的5个核心技巧。内容涵盖多线程渲染架构设计、OpenGL状态管理与批处理优化、内存与显存高效管理、Qt UI与3D场景深度集成,以及跨平台部署与性能调优实战,旨在帮助开发者解决海量3D Tiles数据渲染的性能瓶颈,实现流畅的交互体验。

t8u9v0的博客 548

关于基于MinGW64生成PYD的那些坑

最近因为想对py文件加密,所以好好研究了一下如何生成pyd文件。pyd格式是D语言(C/C++综合进化版本)生成的二进制文件,实际也就是dll文件。生成pyd必须要有C++的编译器vs2019(MSVS)或者MinGW64。奈何,一个vs2019(MSVS)十几个G,MinGW64坑又太多了。最后解决是通过Nuika库 + cypython + MinGW64。Python 的打包神器 — Nuitka!

weixin_44105701的博客 412

使用光流进行 Warp 的流程

光流描述了图像帧中每个像素的运动。前向光流:描述了帧中每个像素在帧中的移动位置。后向光流:描述了帧中每个像素在帧​ 中的移动位置。水平方向的位移(x 方向),即每个像素水平移动了多少像素。垂直方向的位移(y 方向),即每个像素垂直移动了多少像素。使用光流进行 Warp 的流程Warp 是通过光流对图像进行变换的操作,旨在将前一帧的像素根据光流场映射到下一帧的对应位置。Step 1: 计算光流我们首先需要通过光流网络(如 RAFT)来估算两帧之间的光流。我们可以获得前向光流(从帧​ 到帧。

qq_44199605的博客 2108

使用MinGW 编译python扩展模块

MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,  允许你生成本地的Windows程序而不需要第三方C运行时库。说白了就是在windows环境下  提供一套GNU工作环境。  1、下载mingw-get  下载地址  http://sourceforge.net/projects/mingw/files/ 2、 安装gcc

随影 2980

Python爬虫实战:爬取国家气象局台风路径数据的完整教程

国家气象局(如中国气象局)一般会在官方网站公布台风的实时路径,包括台风编号、名称、时间点、经纬度、中心气压、最大风速等信息。这些数据以图形和表格的形式呈现,有时以JSON或CSV文件形式下载。爬取这类数据,有助于构建台风数据库、历史路径分析、趋势预测等应用。本文详细介绍了如何通过Python爬取国家气象局发布的台风路径数据,涵盖了数据采集、解析、存储和可视化全流程。通过实践,你可以构建自己的台风数据库,结合机器学习开展路径预测和风险评估等高级分析。后续可结合深度学习技术,实现台风轨迹预测;

2201_76125261的博客 1022

使用 MinGW 编译 C/C++ 写的 python 扩展

最终还是选择了 Makefile 。

独木专栏 1658

【Oracle】Oracle rman工具使用(真的细)

Oracle RMAN(Recovery Manager)是Oracle数据库备份和恢复的官方工具,它提供的备份和恢复功能非常强大和可靠。RMAN可以备份整个数据库或特定表空间、数据文件、控制文件和归档日志,同时还可以进行增量备份和增量恢复。RMAN还提供了诸如备份验证、备份优化、备份复制、备份集管理、恢复操作、自动备份、自动恢复等高级功能。它使用的备份和恢复格式是Oracle通用的备份集(Backup Set),这使得备份和恢复非常灵活和高效。

tttzzzqqq2018的博客 8501

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python源码编译 mingw_windows下使用mingw编译python扩展模块

环境:1.python2.7.22.mingw20120426说明:PYTHON_HOME:不做特殊说明的话,默认代表python的安装路径。MINGW_HOME:不做特殊说明的话,默认代表mingw的安装路径。首选需要安装python和mingw,python就不多说了,至于mingw的安装可以参考这个链接下面说下修改全局的python默认编译器1.将MINGW_HOME\bin加入到系统环境变...

weixin_39911056的博客 732

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

windows下使用mingw编译python扩展模块

环境: 1.python2.7.2 2.mingw20120426 说明: PYTHON_HOME:不做特殊说明的话,默认代表python的安装路径。 MINGW_HOME:不做特殊说明的话,默认代表mingw的安装路径。 首选需要安装python和mingw,python就不多说了,至于mingw的安装可以参考这个链接 http://www.swingworks.net/20...

weixin_30776273的博客 246

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python源码编译 mingw_使用 MinGW 编译 C/C++ 写的 python 扩展

扩展的代码可以直接使用 python 文档中的例子 spam。编译的话,可以用 distutils,写 setup.py 脚本即可。大致的代码如下:from distutils.core import setup, Extensionmodule1 = Extension('spam', sources = ['src/spammodule.c'])setup ( name = 'PackageN...

weixin_39892800的博客 496

在Windows下用MinGW编译Python扩展模块

http://gashero.yeax.com MinGW的安装 我的是gcc 3.2.3的解压缩包,解压后设置PATH就可以用了。 构建 可以直接在构建命令上指定编译器来运行: python setup.py build -c mingw32 python setup.py build -compiler=mingw32 两种命令都相同。编译完成后可以在 \build\l

549

解决G++编译Python扩展报错:从MinGW到TDM-GCC的完整迁移指南

本文深入解析了在Windows系统下使用G++编译器编译Python C/C++扩展时,因MinGW与MSVC运行时库不兼容而导致的链接错误。通过对比MinGW、MinGW-w64和TDM-GCC,推荐并详细指导了迁移至兼容性更佳的TDM-GCC的完整流程,包括环境配置、编译命令及高级排错方法,助您一劳永逸地搭建健壮的Windows混合开发环境。

android的专栏 920

解决Windows下G++编译Python扩展报错:TDM-GCC vs MinGW64全指南

本文详细解析了Windows下使用G++编译器编译Python扩展时常见的报错问题,特别是TDM-GCC与MinGW64的差异。通过对比不同编译器的特点,提供针对32位/64位系统的具体解决方案,帮助开发者高效解决Python.h头文件链接错误和运行时库冲突问题。

weixin_30566063的博客 453

python源码编译 mingw_windows下用mingw开发python扩展

最近一直在学python,的确为python的简洁所折服,因为工作中可能会经常用到python和c打交道的情况,所以研究了一下C语言扩展的写法,可能比较基础,让高手们见笑啦。发现原来在windows和linux下面,对C扩展的编译方法是不一样的,我们先来看windows版的。我们用C实现一个简单的加法。首先新建一个文件add.c,代码如下:#include ;static PyObject* ad...

weixin_39655981的博客 281

window下使用Mingw编译python扩展库ujson

放一个我编译好的http://download.youkuaiyun.com/detail/toontong/4372898 关于ujson,请看:http://simple-is-better.com/news/458 安装MinGW, 我使用mingw-get-inst-20120426.exe安装,网络安装,有时没法安装完整,下载总不稳定。 过了两天跑才下载到gcc.exe。 pyt

toontong的专栏 5066

mpython 编译_在Windows下用MinGW编译Python扩展模块

MinGW的安装我的是gcc 3.2.3的解压缩包,解压后设置PATH就可以用了。构建可以直接在构建命令上指定编译器来运行:python setup.py build -c mingw32python setup.py build -compiler=mingw32两种命令都相同。编译完成后可以在 buildlib.win32-2.4 看到得到的*.pyd文件。把这个文件复制到site-packa...

weixin_39777404的博客 639

MinGW安装

MinGW(Minimalist GNU For Windows)是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。 MinGW最大的特点就是编译出来的可执行文件能够独立在Windows上运行。 MinGW的组成: 编译器(支持C、C++、ADA和Fortran) GNU工具 mingw-get(用于Windows平台...

WeisongZhao 993
上一篇: 最近在用python做一些东西,所以随便先写一下,后面慢慢补上
下一篇: 打印python的ctype定义的结构中的数据
matlab2000
博客等级 码龄24年 37粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值