对Python子包感到困惑
正如标题所说,我对子包感到困惑。我的包结构如下所示:对Python子包感到困惑,python,module,packages,Python,Module,Packages,正如标题所说,我对子包感到困惑。我的包结构如下所示: draw \ __init__.py base \ __init__.py utils.py events.py master.py basegui.py import draw.base.utils as _utils 现在,draw.base.events的第一行如下: draw \ __init__.py base \
draw \
__init__.py
base \
__init__.py
utils.py
events.py
master.py
basegui.py
import draw.base.utils as _utils
现在,draw.base.events
的第一行如下:
draw \
__init__.py
base \
__init__.py
utils.py
events.py
master.py
basegui.py
import draw.base.utils as _utils
draw.base
的第一行是:
from draw.base.events import Event, RenderEvent, InputEvent, MouseEvent, KeyboardEvent
只需使用IDLE检查代码中的语法错误:
import draw.base as base
给出以下属性错误
:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import draw.base
File "Z:\Eigene Dateien\Eigene Dokumente\Python\draw\base\__init__.py", line 4, in <module>
import draw.base.events as events
File "Z:\Eigene Dateien\Eigene Dokumente\Python\draw\base\events.py", line 10, in <module>
import draw.base.utils as _utils
AttributeError: 'module' object has no attribute 'base'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
导入draw.base
文件“Z:\Eigene-Dateien\Eigene-Dokumente\Python\draw\base\\uuuuu init\uuuuuu.py”,第4行,在
将draw.base.events导入为事件
文件“Z:\Eigene-Dateien\Eigene-Dokumente\Python\draw\base\events.py”,第10行,在
将draw.base.utils导入为_utils
AttributeError:“模块”对象没有属性“基”
有人能给我解释一下问题是什么吗?为了在
draw.base.events
中导入draw.base.utils
,Python需要导入draw.base
,它现在正在导入,所以还没有draw.base
。您可以将导入draw.base.utils
替换为导入utils
(您也可以在2.7、3.x中使用类似于的从.base导入utils
,或者在draw.base.events
中使用从.base导入utils
)来打破循环。是draw.base
一个单独的文件吗?否则,我不明白你所说的“绘制.base的第一行”是什么意思。我相信他指的是使用import draw.base import draw.base.utils的draw/base/\uuu init\uuuuuuuuuuuuuy.py的第一行。(Python 2.7)是否必须在draw\\uuuu init\uuuuu.py
中导入draw.base
import.utils
是一个语法错误,它只能作为from..base import utils
。我想避免使用xx import yy的,因为我更喜欢其他语法。但我明白了,这是没有办法的