是否使用点符号导入自定义包的子模块? [英] Importing a submodule of a custom package using the dot notation?

查看:27
本文介绍了是否使用点符号导入自定义包的子模块?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我猜这个问题可能已经得到了回答,但我的所有搜索都找到了其他重要的问题。话又说回来,也许我只是不知道该搜索什么词。

如果我创建一个带有模块的包,似乎可以使用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

这篇关于是否使用点符号导入自定义包的子模块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆