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

问题描述 投票:1回答:1

我不确定这个问题的标题是否正确,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
python python-2.7 cython
1个回答
0
投票

fast_layer.py之前在import cs231n.im2col_cython文件中添加:

import pyximport
pyximport.install()

你提到的问题应该修复。

© www.soinside.com 2019 - 2024. All rights reserved.