Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Kivy中编辑和执行用户输入python代码-如何使用沙箱?_Python_Sandbox_Kivy - Fatal编程技术网

在Kivy中编辑和执行用户输入python代码-如何使用沙箱?

在Kivy中编辑和执行用户输入python代码-如何使用沙箱?,python,sandbox,kivy,Python,Sandbox,Kivy,在Kivy应用程序中,我希望能够在Kivy中有一个多行文本框, 用户可以在其中键入/编辑python代码 在执行用户操作时,我希望能够运行该代码,以获取具有已知名称的函数的返回值。当然,在执行此操作时,必须对代码进行沙盒处理,以防止用户访问与其运行的应用程序或设备相关的任何其他内容 有推荐的方法吗?我遇到过,我想知道这对于Kivy应用程序来说是否足够,或者是否有其他更适合它的方法。既然您已经找到了受限Python(仅适用于Python 2.7),您可能已经知道了exec和(这表明真正的沙盒pyt

在Kivy应用程序中,我希望能够在Kivy中有一个多行文本框, 用户可以在其中键入/编辑python代码

在执行用户操作时,我希望能够运行该代码,以获取具有已知名称的函数的返回值。当然,在执行此操作时,必须对代码进行沙盒处理,以防止用户访问与其运行的应用程序或设备相关的任何其他内容


有推荐的方法吗?我遇到过,我想知道这对于Kivy应用程序来说是否足够,或者是否有其他更适合它的方法。

既然您已经找到了受限Python(仅适用于Python 2.7),您可能已经知道了
exec
和(这表明真正的沙盒python是不可能的——您可以使它具有挑战性或有助于防止错误,但无法防止恶作剧).RestrictedPython似乎不支持Python3.x,因此您应该通过向其开发人员发送电子邮件来了解它是否仍在维护,因为kivy最终将放弃2.7。根据您希望允许的内容,
ast.literal\u eval
可能足够了,但它只能访问非常有限的Python子集,我怀疑它是否有用如果您的kivy应用程序是一个数学应用程序,用户可以输入算术表达式,但除此之外,可能还不够