使用Python3.5.3、Cython0.28.2及VS2017编译HelloWorld.pyx求助
搞定Visual Studio 2017编译Cython HelloWorld的问题
看起来你已经搭好了环境:Python 3.5.3、Cython 0.28.2加上Visual Studio 2017,还跟着官方教程尝试写最简单的HelloWorld例子——不过你的setup.py似乎没写完,我来帮你补全并捋清楚整个编译流程。
首先,你的helloworld.pyx内容没问题,就保持:
print('hello world')
接下来是完整可用的setup.py,把你没写完的部分补全:
from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext setup( cmdclass={'build_ext': build_ext}, ext_modules=[Extension('helloworld', ['helloworld.pyx'])] )
然后是编译的关键步骤,别踩坑:
- 先确认Visual Studio 2017已经装了C++开发相关组件,特别是「Visual C++ 2015 Build Tools」和「Windows Universal CRT SDK」——因为Python 3.5依赖VC++ 14.0的运行时,VS2017需要这些组件来提供兼容的编译器。
- 打开Visual Studio 2017开发者命令提示符(别用普通的cmd,不然编译器环境没激活),切换到两个文件所在的目录。
- 运行编译命令:
python setup.py build_ext --inplace
编译完成后,你会看到目录里多出一个helloworld.cp35-win_amd64.pyd(或者对应你系统架构的后缀)的文件,这就是编译好的扩展模块。直接在Python里导入就能运行:
import helloworld # 这行执行后就会打印hello world
如果遇到编译器识别失败的问题,可以试试在命令里指定编译器:
python setup.py build_ext --inplace --compiler=msvc
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

