Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:调用同一目录中的模块_Python_Module_Init - Fatal编程技术网

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的对象

然后,在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'
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