【发布时间】:2020-01-30 13:02:16
【问题描述】:
我在同一目录中导入模块时遇到问题。 基本上,这是我的组织
alex (folder)
|
|- alex (folder)
| |- __init__.py
| |- commons.py
| |- KnowledgeBase.py
|
|- test.py
在我的 init.py 文件中,我有以下几行可以使 test.py 中的公共资源和知识库的导入更容易。 它似乎有效。
from .KnowledgeBase import KnowledgeBase
from .commons import *
在我的 KnowledgeBase.py 文件中,我有一个名为 KnowledgeBase 的类。
在 commons.py 中,我有不同的对象:
一个名为 CDE 的命名元组
一个名为 TimePeriod 的对象
然后,在 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 中使用“简单模块调用”。
如果我在 test.py 中保留一个空的 init.py 文件,而不是简单地编写
import alex
我必须声明所有进口:
from alex import KnowledgeBase
from alex import commons
请问,我能做些什么来保持 alex 中不同 python 模块的导入“简单”,同时能够将模块从 alex 文件夹导入到 alex 文件夹中的其他模块中?
我提前感谢您的帮助。 下午好, 最好的,
【问题讨论】: