gpt4 book ai didi

python - 将包作为 Python 中的插件

转载 作者:太空宇宙 更新时间:2023-11-03 18:14:30 25 4
gpt4 key购买 nike

通过可选包扩展 python 包的最佳方法是什么?这个想法是你可以这样:

pip install mypackage

以及可选的:

pip install mypackage-option1

然后您的应用程序将执行以下操作:

from mypackage import somefunction

但是 somefunction 知道 mypackage-option1 的存在(如果已安装)。

我已经看到了通过插件系统执行此操作的几种方法,但我有一些需要满足的要求:

  • Python 2.6+ 和 3.2+。
  • 零配置。
  • mypackage 不应显式使用 mypackage-option1。 (即,如果将来我有 mypackage-option2 它应该可以在不更改 mypackage 的情况下工作)
  • 使用 mypackage 的应用程序不需要导入 mypackage-option1
  • 用户目录或其他任何地方都没有存储配置文件或列表。

最佳答案

如果您的插件包名称始终以 mypackage- 开头(并且由于您的无配置要求,您可能需要这样的约定),您可以这样做:

import pkgutil
plugin_names = [
name for (loader, name, ispkg) in pkgutil.iter_modules()
if name.startswith('mypackage-')]

这将为您提供字符串形式的包名称。然后你可以使用__import__()动态导入模块。

关于python - 将包作为 Python 中的插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25219508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com