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,
)