使用点表示法导入自定义包的子模块?

时间:2015-06-23 18:57:01

标签: python python-3.x import python-import

我猜这可能已经得到了解答,但我的所有搜索都出现了其他导入问题。然后,也许我只是不知道要搜索的正确术语。

如果我使用模块创建包,似乎我可以使用from mypackage import mymodule在我的代码中使用mymodule。但是,我无法使用import mypackage,然后使用mypackage.mymodule。有了这个,我收到AttributeError: 'module' object has no attribute 'mymodule'错误。为什么这个以及如何设置它以便我可以使用它?

我的包结构如下所示。所有__init__.py都是空的。

myproject
  __init__.py
  mypackage
    __init__.py
    mymodule.py
  mymain.py # Doing the importing.

1 个答案:

答案 0 :(得分:2)

不会隐式导入子模块。除非您明确要导入.mymodule,否则您需要在mypackage/__init__.py中导入mypackage.mymodule