是否使用点符号导入自定义包的子模块?
问题描述
我猜这个问题可能已经得到了回答,但我的所有搜索都找到了其他重要的问题。话又说回来,也许我只是不知道该搜索什么词。
如果我创建一个带有模块的包,似乎可以使用from mypackage import mymodule
在代码中使用mymodule
。但是,我不能先使用import mypackage
,然后再使用mypackage.mymodule
。因此,我得到一个AttributeError: 'module' object has no attribute 'mymodule'
错误。为什么要这样做?如何设置才能使用它?
我的包结构如下所示。所有__init__.py
%s均为空。
myproject
__init__.py
mypackage
__init__.py
mymodule.py
mymain.py # Doing the importing.
解决方案
子模块不会隐式导入。您将需要在mypackage/__init__.py
中导入.mymodule
,除非您明确希望导入mypackage.mymodule
。
相关文章