模块中的python import类抛出import

2024-09-29 18:46:07 发布

您现在位置:Python中文网/ 问答频道 /正文

抱歉,如果这个问题看起来很简单的话,我在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的一些恶作剧)。你知道吗

我做错什么了?你知道吗

谢谢你抽出时间,内森。你知道吗


Tags: inpyimporthomefoolinesitebar
1条回答
网友
1楼 · 发布于 2024-09-29 18:46:07

谢谢@zvone,我现在知道我的错误了:我只是把班级的名字拼错了。。。抱歉耽误了你的时间。你知道吗

由于我无法消除这个问题,我将告诉您@vzone告诉我的解决我遇到的两个问题的简单技巧:

import lib
print (lib)

允许您从lib所在的位置进行检查,因为您可能正在从其他地方加载一个名称类似的lib。我的test.bar
进一步使用

import lib
print (dir( lib))

使您对类中的内容有一个相当清晰的了解,从而使调试更容易。你知道吗

谢谢这个小伙子,他在评论里都做到了。你知道吗

相关问题 更多 >

    热门问题