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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当文件位于同一目录并调用脚本时,导入不起作用相关的知识,希望对你有一定的参考价值。

我不确定这个问题的标题是否正确,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
答案

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

import pyximport
pyximport.install()

你提到的问题应该修复。

以上是关于当文件位于同一目录并调用脚本时,导入不起作用的主要内容,如果未能解决你的问题,请参考以下文章

子目录中的导入脚本不起作用... Blender Add-On

Python导入并运行位于不同目录中的python脚本[重复]

如何可靠地打开与当前正在运行的脚本位于同一目录中的文件

为什么wp_enqueue_style在这里不起作用?

React Navigator StackNavigator:从同一场景调用两次时 goBack 不起作用

JavaScript函数导入不起作用