我正在使用Python构建一个IRC bot。我要求机器人是可扩展的,并且我正在寻找构建一个模块系统来检查模块并在机器人运行时动态注册它们。例如,有足够访问权限的人可以在IRC上发送类似“module enable feedparse”的内容,这将搜索modules /目录中的feedparse模块。如果它在那里,从模块本身的全局变量中获取模块的全名,版本和描述。然后它在现场注册并启用模块。
我该怎么做呢?谢谢!
答案 0 :(得分:1)
我个人已经完成了以下操作,为您的模块创建了一个管理器,然后将您的模块作为完全独立的进程运行。
使用这种“管理程序”设计要比担心模块重新加载或其他实现相同目标的方法要好得多。它还躲过了python中可能发生的热代码重载问题。
如果你想真正想要的话,可以用subprocess或multiprocess模块实现上述大部分工作