如何启用其他程序来修改现有程序

时间:2013-09-11 21:54:36

标签: python artificial-intelligence

我正在创建类似于this的python程序 。无论如何我想要做的是让用户能够修改自己的程序,但我需要帮助了解这是如何工作的。我查看了源代码,并且在发生这种情况时感到困惑,即使有人可以指出我会对此非常有帮助。我知道程序不会被沙盒化,但这不是我现在担心的事情。如果你能指出我的方向会很棒!谢谢!

2 个答案:

答案 0 :(得分:0)

“机器人程序”只是存储为纯文本文件。

editor.py中有一个通用文本编辑器。当您在给定视图中打开机器人时,例如qt4view.py中的Qt4视图,它只是实例化文本编辑器并将其交给机器人的文件。同样,机器人的文件是Python脚本的事实并不重要;它只是将其编辑为文本文件。

同时,战斗代码打开与Python代码相同的机器人文件,文本编辑器将其作为文本文件打开。您可以在game.py中看到此代码:它只使用subprocess模块运行Python,将机器人文件作为参数传递。

答案 1 :(得分:0)

我的另一个答案涉及你实际问的问题。但我不认为这是你真正想知道的。

你只想知道如何运行一些Python脚本,你有一个路径名,在一个单独的Python解释器中,对吗?

虽然可以从pybotwar代码中找出答案,但是有很多额外的东西会妨碍它理解它 - conf.py文件,可配置的额外标志等。

但答案很简单:使用subprocess模块,就像运行任何程序一样。在这种情况下,Python解释器是可执行文件(通常您需要sys.executable,您正在使用的相同Python解释器),以及您希望作为参数运行的脚本。例如:

script_output = subprocess.check_output([sys.executable, script_path])

subprocess文档很好地解释了所有不同的选项。