Python中文
首页
教程
问答
标签
搜索
登录
注册
像Minecraft Bukki这样的Python插件
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我一直在读这个:<br/> <a href="http://lkubuntu.wordpress.com/2012/10/02/writing-a-python-plugin-api/" rel="nofollow">http://lkubuntu.wordpress.com/2012/10/02/writing-a-python-plugin-api/</a> <br/> 我正在尝试做一些类似Minecraft帮助系统的事情。<br/> 假设我有我的主模块,帮助命令是:<br/></p> <blockquote> <p>help<br/> test1<br/> test2<br/></p> </blockquote> <p>然后,在加载插件之后,我将拥有相同的集,再加上插件可用的集。<br/> 另外,在处理这些命令时,我该如何区分内部程序和插件的命令?!<br/> 到目前为止,我想出了一个办法:<br/></p> <pre><code>import imp import os PluginFolder = "./plugins" MainModule = "__init__" def getPlugins(): plugins = [] possibleplugins = os.listdir(PluginFolder) for i in possibleplugins: location = os.path.join(PluginFolder,i) if not os.path.isdir(location) or not MainModule + ".py" in os.listdir(location): continue info = imp.find_module(MainModule, [location]) plugins.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>({"name":i, "info": info}) return plugins def loadPlugin(plugin): return imp.load_module(MainModule, *plugin["info"]) disponiveis = [] for i in getPlugins(): print("Loading plugin "+ i["name"]) plugin = loadPlugin(i) plugin.run() disponiveis.append(i["name"]) while 1: foo = raw_input(":") if foo == 'quit': break; elif foo in disponiveis: print "ok" else: continue </code></pre> <p>与原始示例相比不多:|<br/> 我最大的问题是加载所有插件的周期。<br/> 目前我有两个插件,<em>hello</em>和<em>testing</em>。我怎么才能得到这样的东西:</p> ^{pr2}$ <p>另外,if/elif有点蹩脚。。。可用的命令应该来自插件。<br/> 用一个<em>dict</em>也许?!?!然后当加载插件时,它会在dict中添加额外的命令?!?!在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>谢谢你的回答和帮助,但我不应该试图重新发明轮子。<br/> 这个框架很棒:<br/> <a href="http://yapsy.sourceforge.net/" rel="nofollow">http://yapsy.sourceforge.net/</a></p> <p>很有魅力。<br/> (这确实有助于进一步了解Python)</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
9 回答
文本小部件:在没有输入时更新并在循环后保持空闲
5 回答
文本小部件tkin
9 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
1 回答
文本小部件tkinter复制图像选项
1 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
3 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
6 回答
文本小部件不显示lis中的内容
10 回答
文本小部件不显示Unicode字符
4 回答
文本小部件中写入的行间距
4 回答
文本小部件中的文本作为变量
5 回答
文本小部件中的滚动条仅显示在底部
7 回答
文本小部件中的选项卡键空间计数
7 回答
文本小部件作为Lis
8 回答
文本小部件在主框架中扩展列宽
6 回答
文本小部件未使用删除功能清除
10 回答
文本小部件滚动动画(Tkinter、Python)
3 回答
文本居中。格式正确吗?
4 回答
文本差分算法
4 回答
文本已知时音频文件中的单词索引
1 回答