Python:调用同一目录中的模块
导入同一目录中的模块时遇到问题。 基本上,这是我的组织Python:调用同一目录中的模块,python,module,init,Python,Module,Init,导入同一目录中的模块时遇到问题。 基本上,这是我的组织 alex (folder) | |- alex (folder) | |- __init__.py | |- commons.py | |- KnowledgeBase.py | |- test.py 在我的init.py文件中,我有以下几行代码,使commons&KnowledgeBase在test.py中的导入更容易。 它似乎起作用了 from .KnowledgeBase import KnowledgeB
alex (folder)
|
|- alex (folder)
| |- __init__.py
| |- commons.py
| |- KnowledgeBase.py
|
|- test.py
在我的init.py文件中,我有以下几行代码,使commons&KnowledgeBase在test.py中的导入更容易。
它似乎起作用了
from .KnowledgeBase import KnowledgeBase
from .commons import *
在KnowledgeBase.py文件中,我有一个名为KnowledgeBase的类
在commons.py中,我有不同的对象:
- 名为CDE的命名元组
- 一个名为TimePeriod的对象
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'
ModuleNotFoundError: No module named 'commons'
如果我用传统的方式做:
import commons as AC
stuff with AC.CDE ...
我收到以下错误消息
AttributeError: module 'alex' has no attribute 'CDE'
ModuleNotFoundError: No module named 'commons'
如果我删除了init.py文件中的所有内容,它就可以工作了,但是,我不能在test.py中使用“easy module call”
如果我在test.py中保留一个空的init.py文件,而不是简单地编写
import alex
我必须申报所有进口货物:
from alex import KnowledgeBase
from alex import commons
请问,我能做些什么来保持alex中不同python模块的导入“简单”,同时能够将模块从alex文件夹导入alex文件夹中的其他模块
我事先感谢你的帮助。
下午好,
最好的,找到合适的格式后,我回来了。 在KnowledgeBase.py中,从commons导入函数或对象的正确方法是键入:
from . import commons as AC
找到合适的格式后,我会回来。 在KnowledgeBase.py中,从commons导入函数或对象的正确方法是键入:
from . import commons as AC