python - 用 Python 构建一个最小的插件架构

我有一个用 Python 编写的应用程序,供相当技术性的受众(科学家)使用。

我正在寻找一种让用户可扩展应用程序的好方法,即脚本/插件架构。

我正在寻找极轻的东西。大多数脚本或插件不会由第三方开发和分发并安装,而是由用户在几分钟内完成,以自动执行重复任务,添加对文件格式的支持,等等。所以插件应该有绝对最少的样板代码,并且除了复制到文件夹之外不需要“安装”(所以像 setuptools 入口点,或者 Zope 插件架构似乎太多了。)

是否已经有类似这样的系统,或者是否有任何项目实现了类似的方案,我应该寻找想法/灵感?

最佳答案

我的基本上是一个名为“plugins”的目录,主应用程序可以轮询然后使用imp.load_module要获取文件,请查找可能带有模块级配置参数的知名入口点,然后从那里开始。我使用文件监控的东西来确保插件处于事件状态的一定数量的动态,但这是一个不错的选择。

当然,任何伴随着“我不需要[大而复杂的东西] X;我只想要一些轻量级的东西”的需求都会冒着一次重新实现一个发现的需求的风险。但这并不是说无论如何你都不能从中获得乐趣:)

https://stackoverflow.com/questions/932069/

相关文章:

linux - 查看 PS 命令的完整输出

python - scikit-learn 中跨多个列的标签编码

python - 使用 Python 进行网页抓取

python - 如何消除数独方 block 中的凸性缺陷?

linux - 单个主机上的多个 glibc 库

python - 如何将 numpy 数组转换为(并显示)图像?

linux - Bash中的 'eval'命令及其典型用途

mysql - 错误 1045 (28000) : Access denied for user '

linux - "/usr/bin/ld: cannot find -lz"

python - 如果对象存在,我如何获取它,或者如果它在 Django 中不存在,我如何获取它?