抱歉,如果这个问题看起来很简单的话,我在java方面很有经验,但在python方面绝对没有经验,导入在python中的工作方式对我来说仍然是一个很大的迷雾。
问题是,根据我从互联网上收集的信息,我觉得我已经完成了脚本导入文件夹中模块所需的一切。你知道吗
我的项目看起来像这样
/omme
start.py
/foo
__init__.py #is empty
bar.py #has a class named BarClass
你知道吗开始.py只有这个
from foo.bar import BarClass
b = BarClass()
当我在spyder IDE中运行这个脚本时
runfile('/home/nathan/Documents/workspace/omme/start.py', wdir='/home/nathan/Documents/workspace/omme')
Reloaded modules: foo.bar
Traceback (most recent call last):
File "<ipython-input-38-c3b9ba6593fb>", line 1, in <module>
runfile('/home/nathan/Documents/workspace/omme/start.py', wdir='/home/nathan/Documents/workspace/omme')
File "/home/nathan/.anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
execfile(filename, namespace)
File "/home/nathan/.anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/home/nathan/Documents/workspace/omme/start.py", line 1, in <module>
from foo.bar import BarClass
ImportError: cannot import name 'BarClass'
更奇怪的是,如果我用 test.bar
替换 foo.bar
,它会抛出ModuleNotFoundException(我怀疑是ide的一些恶作剧)。你知道吗
我做错什么了?你知道吗
谢谢你抽出时间,内森。你知道吗
谢谢@zvone,我现在知道我的错误了:我只是把班级的名字拼错了。。。抱歉耽误了你的时间。你知道吗
由于我无法消除这个问题,我将告诉您@vzone告诉我的解决我遇到的两个问题的简单技巧:
允许您从lib所在的位置进行检查,因为您可能正在从其他地方加载一个名称类似的lib。我的
test.bar
进一步使用
使您对类中的内容有一个相当清晰的了解,从而使调试更容易。你知道吗
谢谢这个小伙子,他在评论里都做到了。你知道吗
相关问题 更多 >
编程相关推荐