我一直能够在我的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
变量,当它展开该变量时,用户插入的引号与脚本插入的引号不匹配,从而导致此错误。
有两天我再也回不来了:)
希望这能帮助其他人避免重蹈覆辙。