在Python应用程序中嵌入Python以编写脚本

在Python应用程序中嵌入Python以编写脚本,python,python-3.x,pyinstaller,Python,Python 3.x,Pyinstaller,我已经用python 3编写了一个应用程序。我计划将其作为pyInstaller二进制文件发布,所有人都可以在自己的系统上运行该应用程序。我想添加一种方法,这样用户也可以在应用程序内部编写脚本。因此,我想公开python解释器+应用程序中的一些类来实现控件 我该怎么做 该应用程序以gui+相当多的LIB运行PySide2。不知道这是否重要。我将提供一个文本编辑ide风格的编码 短暂性脑缺血发作 致亲爱的国防部,决定结束这个问题。我不知道如何确切地要求我想做什么。获取一般性反馈是一个一般性的问题,

我已经用python 3编写了一个应用程序。我计划将其作为pyInstaller二进制文件发布,所有人都可以在自己的系统上运行该应用程序。我想添加一种方法,这样用户也可以在应用程序内部编写脚本。因此,我想公开python解释器+应用程序中的一些类来实现控件

我该怎么做

该应用程序以gui+相当多的LIB运行PySide2。不知道这是否重要。我将提供一个文本编辑ide风格的编码

短暂性脑缺血发作


致亲爱的国防部,决定结束这个问题。我不知道如何确切地要求我想做什么。获取一般性反馈是一个一般性的问题,这样我就可以理解我的问题&以后可以更专注地问更多的问题。

Python允许您运行运行时使用指定的代码。这还允许您访问已定义的任何函数或类。请注意,绝不允许从不受信任的网络连接的未初始化数据中获取此函数的任何输入。

Python解释器嵌入在pyinstaller exe中。请注意,只有exe中包含的模块可用-我想您应该能够向pyinstaller规范文件添加更多。。可能存在安全问题,因为用户的脚本可能能够访问登录名/密码。谢谢@barny!听起来很有趣。我将阅读更多关于规范文件。。。我知道我做了很多工作,让它运行我的应用程序排在第一位。我想知道它是否会包含我用来构建东西的PythonVenV的所有内容,或者只是它所需要的最低限度。这意味着如果我在脚本编辑器中获取用户输入的text/IDE的输出,那么我可以通过exec(“print('hello'))运行它,并获得正确的输出?这听起来很棒。然后我可以将一些模块预导入到代码中,这样用户就可以访问一些内部模块。当您说
来自不受信任的网络连接的未初始化数据时。
您的意思是套接字/网络连接不允许调用该exec()调用吗?是的,您应该能够预导入一些模块,我的意思是,您不应该请求数据,然后将其插入到代码中,因为这可能导致远程代码执行漏洞。