编译Cython文件时出现错误

3

我想在Windows 7上编译我的Cython文件。

python mySetup.py build_ext --inplace

但是出现了错误

正在运行build_ext 构建'sumrange_Cython'扩展 C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\bin\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Artem\AppData\Local\Programs\Python\Python36-32\include -IC:\Users\Artem\AppData\Local\Programs\Python\Python36-32\include /Tcsumrange_Cython.c /Fobuild\temp.win32-3.6\Release\sumrange_Cython.obj sumrange_Cython.c c:\users\Artem\appdata\local\programs\python\python36-32\include\pyconfig.h(59): 致命错误 C1083: 无法打开包括文件: 'io.h': 没有那个文件或目录 错误: 命令'C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\bin\cl.exe'以代码2退出

看起来问题在于编译器路径设置不正确。我启动了位于"C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\"的实用程序。

vcvarsall x86

为了设置路径,但它也会出现错误。

脚本使用错误。正确的用法是: vcvarsall [选项] 或 vcvarsall [选项] store 或 vcvarsall [选项] [版本号] 或 vcvarsall [选项] store [版本号],其中[选项]是:x86 | amd64 | arm | x86_amd64 | x86_arm | amd64_x86 | amd64_arm,其中 [版本号]可以是完整的Windows 10 SDK版本号,也可以是“8.1”以使用Windows 8.1 SDK:store参数设置 环境变量以支持商店(而不是桌面) 开发。例如: vcvarsall x86_amd64 vcvarsall x86_arm store vcvarsall x86_amd64 10.0.10240.0 vcvarsall x86_arm store 10.0.10240.0 vcvarsall x64 8.1 vcvarsall x64 store 8.1:请确保安装了Visual Studio或C++ Build SKU。

其他人已经问过这个问题,但答案仍然缺失。 python pip on Windows - command 'cl.exe' failed 解决问题的另一种方法可能是在调用Python时定义到另一个编译器的路径,而不是Visual C++。但我不知道如何做到这一点。
1个回答

3

更新:请查看以下博客文章,获取详细步骤:https://andysalerno.com/Compiling-Python https://github.com/andysalerno/old_site_content/blob/master/Compiling-Python.html

我不确定为什么路径似乎没有被更新。这可能是Visual Studio 2017预览版的一个特性。

cl.exe位于C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\VC\Tools\MSVC\14.10.25017\bin{host}{architecture}\

尝试从"Visual Studio 2017预览版开发人员命令提示符"运行您的命令,因为它知道这个路径。

编辑: 如果出现错误,说“致命错误 LNK1112: 模块机器类型“x64”与目标机器类型“x86”冲突”,则需要检查这个: https://msdn.microsoft.com/en-us/library/x4d2c09s.aspx?f=255&MSPPError=-2147217396 vcvarsall.bat存放在此处:C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\VC\Auxiliary\Build


太棒了!它可以工作。但是有没有一种方法可以修复 PATH 到 VS 工具,或者我总是要以这种方式构建 Cython 源代码? - Artem Zefirov
你可以手动将路径添加到PATH中,但如果两个版本都存在于路径中,则可能会发生冲突。因此,请尝试一下,但最好在某处记录下来,以便在将来出现问题时进行修复。https://dev59.com/R2kw5IYBdhLWcg3w8fBJ - Tomas Andersson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接