首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最小Python插件机制

最小Python插件机制
EN

Code Review用户
提问于 2011-06-09 21:45:00
回答 1查看 914关注 0票数 11

有比下面更好的方法来拥有一个最小的Python插件机制吗?

(这是受这个职位启发的。)

代码语言:javascript
复制
import sys
import pkgutil
import os.path
import plugins
pluginsPath = os.path.dirname(plugins.__file__)
pluginModules = [name for _, name, _ in pkgutil.iter_modules([pluginsPath])]
dictOfPlugins = {}
for plugin in pluginModules:
    thePluginModuleName = "plugins."+plugin
    result = __import__(thePluginModuleName)
    dictOfPlugins[plugin] = sys.modules[thePluginModuleName]

(这确实假设您的所有插件都在一个名为" plugins“的目录中,因此是该包中的模块,并且该目录中有一个空白的__init__.py文件。)

如果您想要查找特定的插件,名称将是dictOfPlugins中的一个键,模块对象本身就是值。假设您知道Python插件模块的接口是什么,这似乎就能完成任务。有更好的方法吗?

EN

回答 1

Code Review用户

发布于 2011-09-08 08:09:49

查看Django应用程序是如何工作的:

  • 插件是真正的Python包,因此可以使用标准工具来安装它们。
  • 实际使用的插件必须在PYTHONPATH中,并在配置中列出(只有包名)。
  • 有脚本来帮助创建,测试,.插件
  • 插件结构在所有可能的方面都是可扩展的。
  • 插件在开发模式变化时会重新加载。

我不是说如果你不做网页开发,你应该使用Django,但是你可以在上面激发你的插件系统。

票数 6
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/2892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档