Python:如何导入包含的软件包?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

在位于包内部的模块中,我需要使用__init__.py该包内定义的函数。我如何导入包内的模块内的包,所以我可以使用该功能?

__init__在模块内导入不会导入包,而是导入一个名为的模块__init__,从而导出两个不同名称的副本......

有没有pythonic的方式来做到这一点?

提问于
用户回答回答于

这并不完全回答你的问题,但我会建议你将该函数移出__init__.py文件,并将其移入该包内的另一个模块。然后,你可以轻松地将该功能导入到其他模块中。如果你愿意,你可以在__init__.py文件中有一个导入语句来导入该函数(导入包的时候)。

用户回答回答于

另外,从Python 2.5开始,相对导入是可能的。例如:

from . import foo

http://docs.python.org/tutorial/modules.html#intra-package-references引用:

从Python 2.5开始,除了上面描述的隐式相对导入之外,您还可以使用import语句的from模块import name形式编写显式相对导入。这些显式相对导入使用前导点来指示相关导入中涉及的当前和父包。例如,从周围的模块中,您可以使用:

from . import echo
from .. import formats
from ..filters import equalizer

扫码关注云+社区

领取腾讯云代金券