我一直能够使用Python 2.7对我的Windows 7(64位)计算机上的代码进行cython化。但是最近我得到了以下错误
error: \Intel\iCLS was unexpected at this time.
对此主题的搜索表明在bat脚本中存在空格和其他此类字符的问题。然而,对于非常基本的hello world example,我也会尝试进行cython化,如下所示:
[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没有帮助。
[Update 1]:我发现我可以使用cython -a helloworld.py
对代码进行cython化。所以我猜这是使用distutils来进行cythonize的问题。我还将成功的cythonize生成的.c文件与失败的文件进行了比较,发现它们在开始时只有不同。失败的版本在顶部
/* BEGIN: Cython Metadata
{
"distutils": {}
}
END: Cython Metadata */
如果有任何关于如何解决此问题的见解,我将不胜感激?
答案 0 :(得分:2)
在尝试为cython构建设置Visual Studio工具时,我能够将问题范围缩小到vcvarsall.bat
无法初始化系统路径。当我开始更改系统路径中的文件夹顺序时,错误开始发生在\NVIDIA unexpected at this time
和\Microsoft unexpected at this time
等不同的内容上。感谢J.J. Hakala's评论,我尝试删除所有引号PATH
变量,它解决了这个问题。
我认为PATH
变量在某处("%PATH%"
)的引号中被Visual Studio脚本使用,当它扩展它时,用户插入的引号与脚本插入引号错误匹配并导致这个错误。
我的生命中有2天我永远不会回来:) 希望这有助于其他人重复同样的错误。
答案 1 :(得分:0)
J.J。 Hakala和SBK的评论肯定让我走上正轨,但并没有完全解决这个问题。在windows环境变量中,我删除了一个"%PATH%"输入和我用%ProgramFiles%替换所有对C:\ Progam文件的引用,用%ProgramFiles(86)%替换C:\ Progam文件(86)的引用。关闭并重新启动CMD.exe后,问题就消失了。