您的位置:首页 > 其它

CS231n作业2中Cython相关问题的处理

2017-07-03 15:54 309 查看
最近磨磨蹭蹭地学着CS231n,看着满屏幕代码不禁感慨Stanford大神们当真深不可测,作业是以挖空形式给出的。这么多代码要让博主从头写,那还不得写到天荒地老……

博主使用的是2016年的教学录像和作业。录像是网易云课堂上大数据文摘做的中文版,配合知乎的杜客他们在专栏上发布的教程翻译使用。

CS231n的作业基于Python2.7,个别文件需要使用C语言编译。博主在Windows 10上运行时曾有一系列报错,搜集网上资料花了一些时间。在这里尽量做一下记录,也希望能对其他人有所帮助。

PS.因为经过了一些时间,记忆不是很清晰了,难以按顺序给出针对性的解决方案,如果一次不成功请尝试走完所有的流程。

问题一: ImportError: No module named ‘Cython’

咳呀这个问题最蠢,首先想到的不应该是没安装Cython环境嘛,直接

pip install -U cython


问题二:error: Unable to find vcvarsall.bat

产生该问题的原因是,博主的Win10系统默认编译工具是VS,在运行编译代码

python setup.py build_ext --inplace


时找不到vcvarsall.bat文件。

解决方法看这里:

https://github.com/cython/cython/wiki/CythonExtensionsOnWindows

下载文中提到的VS for python扩展工具安装即可。

但当时博主安装完之后似乎仍然提示报错,可能是没有严格执行页面上所有的步骤。

于是参考了

https://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat

报错原因似乎是Python2.7会默认搜索VS2008来编译文件。博主电脑里只装了VS2015,于是临时修改了环境变量“欺骗”Python:

SET VS90COMNTOOLS=%VS140COMNTOOLS%


VS140对应VS 2015。注意该命令仅在当前cmd窗口中有效。

问题三:global name ‘col2im_6d_cython’ is not defined

解决上述问题后可能依然会出现该报错。

这就要注意,每次重新编译之前,要删除上次未成功编译时生成的文件。

Windows平台下默认生成一个build目录以及相应文件的.pyc/.pyd文件(这里有关系的是im2col_cython.pyd),删除它们重新编译即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cs231n