我一直能够在我的Windows7(64位)机器上使用Python2.7对代码进行cythonize。但是最近我犯了以下错误
error: \Intel\iCLS was unexpected at this time.
对该主题的搜索表明bat脚本中的空格和其他此类字符存在问题。然而,这发生在非常基本的hello world example以及我试图cythonize如下:

[cmd_prompt] C:\MyScripts\Python\Cython\hello_world>python setup.py build_ext --inplace

Compiling helloworld.py because it changed.
[1/1] Cythonizing helloworld.py
running build_ext
building 'helloworld' extension
error: \Intel\iCLS was unexpected at this time.

更新到cython 0.24没有帮助。
[更新1]:我发现可以使用cython -a helloworld.py对代码进行cythonize。所以我猜是用distutils来进行cythonize才有这个问题。此外,我还比较了由成功的cythonize生成的.c文件和失败的.c文件,发现它们只在开始时有所不同。失败的版本顶部有这个
/* BEGIN: Cython Metadata
{
    "distutils": {}
}
END: Cython Metadata */

对于如何解决这个问题,我希望能有什么见解?

最佳答案

在尝试为cython构建设置visual studio工具时,我将问题缩小到无法初始化系统路径。当我开始更改系统路径中文件夹的顺序时,错误开始在不同的情况下发生,如vcvarsall.bat\NVIDIA unexpected at this time等。由于J.J. Hakala's注释,我尝试从\Microsoft unexpected at this time变量中删除所有引号,从而解决了问题。
我认为visual studio脚本正在某处(PATH)的引号中使用PATH变量,当它展开该变量时,用户插入的引号与脚本插入的引号不匹配,从而导致此错误。
有两天我再也回不来了:)
希望这能帮助其他人避免重蹈覆辙。

10-06 08:48