使用Python创建模块管理器?

时间:2012-03-18 14:40:40

标签: python irc bots

我正在使用Python构建一个IRC bot。我要求机器人是可扩展的,并且我正在寻找构建一个模块系统来检查模块并在机器人运行时动态注册它们。例如,有足够访问权限的人可以在IRC上发送类似“module enable feedparse”的内容,这将搜索modules /目录中的feedparse模块。如果它在那里,从模块本身的全局变量中获取模块的全名,版本和描述。然后它在现场注册并启用模块。

我该怎么做呢?谢谢!

1 个答案:

答案 0 :(得分:1)

我个人已经完成了以下操作,为您的模块创建了一个管理器,然后将您的模块作为完全独立的进程运行。

  • 重新加载流程就像杀死并运行它一样简单
  • 关闭并启动很简单
  • 等错误处理因为你可以将stderr管道传输到irc 信道。
  • 您还可以在不停止机器人或对抗蟒蛇导入机制的情况下加载新模块

使用这种“管理程序”设计要比担心模块重新加载或其他实现相同目标的方法要好得多。它还躲过了python中可能发生的热代码重载问题。

如果你想真正想要的话,可以用subprocessmultiprocess模块实现上述大部分工作