首页 > 解决方案 > 为其他包创建包扩展 [Python]

问题描述

亲爱的,

我想创建一个 Python 包,该包可以使用其他 pip 可安装包进行扩展,它扩展了第一个具有新功能的核心包。

我有它在核心库命名空间/路径中导入这些“扩展”子包的问题。让我用一个例子更好地解释它:

核心库是这样设置的:

library/
    setup.py
    library/
        __init.py__
        core/
            core_module1.py
            core_module2.py

然后,我开发了一个名为的新包

library-feature/
    setup.py
    library_feature/
        __init__.py
        feature/
            __init__.py
            feature_module1.py
            feature_module2.py

如何使用仅导入核心库的功能模块?

import library

from library.core.core_module1 import core_function
from library.feature.feature_module1 import feature_function

标签: pythonimportpackage

解决方案


我通过将这些代码行放入library/__init__.py

from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

并将子包重命名 feature-library/feature_libraryfeature-library/library

这样我们就可以feature从命名空间访问功能library

有关更多信息,请点击此链接到官方文档


推荐阅读