当文件位于同一目录并调用脚本时,导入不起作用

时间:2017-04-07 15:13:55

标签: python python-2.7 cython

我不确定这个问题的标题是否正确,mods请随时更改。

我正在通过cs231n进行视觉识别的卷积神经网络课程,我遇到了一个奇怪的错误。这是我对任何真正的Python编程的第一次尝试,因此它可能是一个简单的错误,或者更复杂的东西。

我使用的是Python 2.7,Anaconda和Windows 7。

尝试运行脚本时出现以下错误;

NameError: global name 'im2col_cython' is not defined

到目前为止,我的理解是发生了这种情况,因为它失败了(并调用异常);

try:
  from cs231n.im2col_cython import col2im_cython, im2col_cython
  from cs231n.im2col_cython import col2im_6d_cython
except ImportError:
  print 'run the following from the cs231n directory and try again:'
  print 'python setup.py build_ext --inplace'
  print 'You may also need to restart your iPython kernel'

我试图弄清楚为什么会出现这种情况。首先,我必须运行setup.py将im2col_cython.pyx转换为其他文件。这似乎已经开始,但在某一点上确实有警告;

warning: extension name 'im2col_cython' does not match fully qualified name 'cs231n.im2col_cython' of 'im2col_cython.pyx'

我在这里想到的是,我的文件夹树看起来像这样的事实是一个问题; 作业2 - > cs231n

在cs231n里面是setup.py和im2col_cython.pyx文件所在的位置。我安装了cython,安装了python2.7的vc。当我运行setup.py时会创建2个新文件;

im2col_cython.c
im2col_cython.pyd

但我不知道这是不是意味着做什么或者其他什么。我已经掌握了这个(0 Python知识),但我很想学习!

编辑1 导入im2col_cython的脚本是here

im2col_cython文件为here

编辑2

在例外条款中包含以下内容时;

  import traceback; traceback.print_exc()

我得到了这个输出;

Traceback (most recent call last):
  File "fast_layers.py", line 3, in <module>
    from cs231n.im2col_cython import col2im_cython, im2col_cython
ImportError: No module named cs231n.im2col_cython

1 个答案:

答案 0 :(得分:0)

fast_layer.py

之前的文件import cs231n.im2col_cython中添加此内容
import pyximport
pyximport.install()

你提到的问题应该修复。