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

最近磨磨蹭蹭地学着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),删除它们重新编译即可。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值