python 脚本编译成pyd的方法

本文详细记录了将py文件编译为pyd过程中遇到的问题及解决方案,包括Microsoft Visual C++ Compiler for Python 2.7在Python 3.3上的问题,以及GCC-MinGW在高版本Python中编译时的错误。通过修改distutils配置文件,解决了编译器找不到vcvarsall.bat的问题,并给出了针对-mno-cygwin不被支持的解决方法。

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

py文件编译成pyd的方法,网上有很多介绍,看到这篇文章的网友估计已经找到了很多解决方法,https://wiki.python.org/moin/WindowsCompilers官网有详细的介绍如何安装不同Python版本的编译器。本文记录安装编译器遇到的一些坑,希望对大家有所帮助。

 其中第9条介绍Microsoft Visual C++ 9.0 standalone: Visual C++ Compiler for Python 2.7 (x86, x64),介绍说对所有版本的Python适用,对2.7版本没有什么问题,但是我测试了3.3版本虽然可以编译成成功,但是import 提示找不到dll文件。

安装了vcforpython27后,在编译时出现"Unable to find vcvarsall.bat"问题,需要手动修改一下C:\Python27\Lib\distutils\msvc9compiler.py文件中的find_vcvarsall函数指定vcvarsall.dat文件的位置,vcvarsall.dat文件在vcforpython27安装目录下的Microsoft\Visual C++ for Python\9.0\,总之让程序找到这个文件。

第14条GCC - MinGW (x86),最高支持到3.4版本,测试了2.7和3.3版本,均可成功编译pyd。但是在3.3版本编译时出现了gcc.exe: error: unrecognized command line option '-mno-cygwin'的错误,

https://stackoverflow.com/questions/13592192/compiling-pygraphviz-unrecognized-command-line-option-mno-cygwin里面有介绍解决方法。意思是说,gcc版本较高,不支持-mno-cygwin这个参数,需要手动修改C:\Python27\Lib\distutils\cygwincompiler.py里面的Ming32CCompiler的-mno-cygwin参数去掉就可以解决。

 

#how to run
#python compliedpyd.py build
import Cython.Build
import distutils.core
a = Cython.Build.cythonize("test0.py")
distutils.core.setup(
ext_modules= a, 
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值