嵌入Python设计

时间:2009-11-05 19:03:13

标签: python embedding

有很多关于如何在应用程序中嵌入python的教程/说明,但在整体设计中没有(我已经看到)关于嵌入式解释器应该如何使用以及如何与应用程序交互的内容。

我能想到的唯一想法就是简单地给用户一个在程序中执行脚本的方法(菜单选项等)。因此某些类,函数,对象等将被导出到python,某些脚本会执行某些操作,然后可以从程序中运行所述脚本。

这样的设计会“安全吗?”意味着恶意/写得不好的脚本“破坏”程序和/或计算机是否可行?我认为它可能取决于脚本可用的功能(例如:它可能会尝试覆盖一些重要文件等)。如何防止这种情况发生? (例如:脚本认证,程序设计等)

这是特定于实现的,但是在脚本完成运行后是否可以保持脚本的效果?这意味着如果脚本计算了某些内容,那么在脚本执行完成后,结果是否可用于程序?我认为如果程序设置为与特定脚本交互,则可以执行,但程序将在大多数脚本编写之前发布;这样的设置似乎是滥用嵌入脚本语言。实际上是否存在您希望脚本执行结果可用的情况,或者这是一种实际上并未发生的人为情况?

是否有其他设计用于嵌入python?
那么以类似于插件架构的方式使用python呢?

谢谢,
马修A.托德

1 个答案:

答案 0 :(得分:1)

我能想到的唯一想法就是给用户一个在程序中执行脚本的方法(菜单选项等)。

正确。

因此某些类,函数,对象等会被导出到python,某些脚本会执行某些操作,然后可以从程序中运行所述脚本。

正确。

这样的设计会“安全吗?”

是。除非你的用户是恶意的,精神病的反社会人士。他们想让你的程序做有用的事情。他们首先购买/下载了该软件。他们认为它有价值。

他们信任您的软件。为什么不相信他们?

如果脚本计算某些内容的含义,脚本执行完毕后结果是否可用于该程序?

像Apache这样的程序一直这样做。搞砸了配置(“脚本”),它崩溃了。学过的知识?不要搞砸配置。