当文件位于同一目录并调用脚本时,导入不起作用
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脚本[重复]