Python: 调用同一目录下的模块

Python: Calling a module in same directory

我在同一目录中导入模块时遇到问题。 基本上,这是我的组织

alex (folder)
 |
 |- alex (folder)
 |   |- __init__.py
 |   |- commons.py
 |   |- KnowledgeBase.py
 |
 |- test.py

在我的 init.py 文件中,我有以下几行,以便在 test.py 中更容易地导入 commons 和 KnowledgeBase。 它似乎有效。

from .KnowledgeBase import KnowledgeBase
from .commons import *

在我的 KnowledgeBase.py 文件中,我有一个名为 KnowledgeBase 的 class。

在commons.py中,我有不同的对象:

然后,在 test.py 中,我可以这样调用我的对象。

import alex as al
do stuff with al.KnowledgeBase
do stuff with al.CDE
do stuff with al.TimePeriod

什么现在不起作用。

我正在调用 KnowledgeBase.py 模块 commons.py。

import alex as al
stuff with al.CDE ...

我收到以下错误消息。

AttributeError: module 'alex' has no attribute 'CDE'

如果我用传统方式做:

import commons as AC
stuff with AC.CDE ...

我收到以下错误消息。

ModuleNotFoundError: No module named 'commons'

如果我删除 init.py 文件中的所有内容,它可以工作,但是我无法在 test.py.[= 中使用 "easy module call" 20=]

如果我在 test.py 中保留一个空的 init.py 文件,而不是简单地写

import alex

我必须申报所有进口商品:

from alex import KnowledgeBase
from alex import commons

拜托,我该怎么做才能在 alex "simple" 中保留不同 python 模块的导入,同时能够将模块从 alex 文件夹导入到 alex 中的其他模块文件夹?

预先感谢您的帮助。 下午好, 最佳,

找到合适的格式后我回来了。 在 KnowledgeBase.py 中,从 commons 导入函数或对象的正确方法是键入:

from . import commons as AC