【问题标题】:Error while compiling a Cython file编译 Cython 文件时出错
【发布时间】:2017-05-03 05:25:31
【问题描述】:

我想在 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 [选项] 存储或 vcvarsall [选项] [版本号] 或 vcvarsall [选项] 存储 [版本号] 其中 [选项] 是:x86 | amd64 |手臂 | x86_amd64 | x86_arm | amd64_x86 | amd64_arm 在哪里 [版本号] 是完整的 Windows 10 SDK 版本号或 “8.1”使用windows 8.1 SDK:存储参数集 支持商店(而不是桌面)的环境变量 发展。 : 例如: vcvarsall x86_amd64 vcvarsall x86_arm 存储 vcvarsall x86_amd64 10.0.10240.0 vcvarsall x86_arm 存储 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++ 的路径。但我不知道该怎么做。

【问题讨论】:

    标签: python visual-studio python-3.x


    【解决方案1】:

    更新:请查看此博客文章以获得出色的演练: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 源代码?
    • 你总是可以手动添加东西到 PATH 中,但是如果两个都存在于路径中,可能会与以前的版本发生冲突。所以尝试一下,但也许在某个地方记下来,以便将来遇到问题时可以修复它。 stackoverflow.com/questions/9546324/…
    猜你喜欢
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多