python - 为其他包创建包扩展 [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
解决方案
我通过将这些代码行放入library/__init__.py
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
并将子包重命名
feature-library/feature_library
为
feature-library/library
这样我们就可以feature
从命名空间访问功能library
。
有关更多信息,请点击此链接到官方文档
推荐阅读
- sql - 第 11 行的 SQL CASE 语句错误
- python-3.x - 即使 nginx 和 uwsgi 启动并运行,Flask web api 也无法正常工作
- gradle - 使用 gradle 中的“apply from”在单独的文件中添加依赖项和插件
- python - Python 从字典中写入 JSON 临时文件
- python - django.core.exceptions.AppRegistryNotReady:应用程序尚未加载。文件初始化
- java - 如何在 JPA 存储库之外定义存储过程
- asp.net - 在 ApplicationUser Identity 中添加属性时出错
- c# - 在 OleDbConnection 中打开时出现异常
- sql-server - 拆分值并传递给存储过程的问题
- php - 如何在 PHP 中删除 EXIF(图像文件)数据?