如何配置 Python 以便我可以直接从包中导入函数?

Posted

技术标签:

【中文标题】如何配置 Python 以便我可以直接从包中导入函数?【英文标题】:How to configure Python so that I can import a function directly from package? 【发布时间】:2021-11-08 02:16:07 【问题描述】:

假设我有一个类似的包结构

pkg
   __init__.py
   module
      __init__.py
      a.py
      b.py

假设a.py中有一个函数func。我想创建一个库,可以直接从 pkg 导入 func

from pkg import func

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

您可以通过__init__.py 进行配置。

pkg/__init__.py

from .module.a import func

这样当pkg被访问时,__init__.py会被加载,从而允许直接访问pkg.func

这是documented:

常规包通常实现为包含__init__.py 文件的目录。导入常规包时,会隐式执行此 __init__.py 文件,它定义的对象将绑定到包名称空间中的名称。 __init__.py 文件可以包含与任何文件相同的 Python 代码其他模块可以包含,Python在导入时会为模块添加一些额外的属性。

【讨论】:

以上是关于如何配置 Python 以便我可以直接从包中导入函数?的主要内容,如果未能解决你的问题,请参考以下文章