如何在编译脚本后用python重新加载模块?

2021-12-01 10:42:49 发布

您现在位置:Python中文网/ 问答频道 /正文

所涉及的基本思想:

我正在尝试制作一个学生可以编写代码的应用程序 与特定问题相关(比如检查数字是否为偶数) 学生给出的代码然后由应用程序检查 将用户代码给出的输出与正确的输出进行比较 由应用程序中已存在的正确代码提供

我正在处理的项目的基本版本:

您可以在其中编写python脚本(tkinter文本)的应用程序 框)。文本框的内容首先存储在test_it.py 文件该文件然后由 应用然后调用test_it.py中的函数来 获取代码的输出(由用户)

问题:

因为我“导入”了test_it.py的内容,所以, 在应用程序运行期间,用户可以测试其脚本 只有一次。原因是python将导入test_it.py 只归档一次。因此,即使在将用户的新脚本保存到 test_it.py,应用程序将无法使用它

解决方案:

Reloadtest_it.py每次单击测试脚本的按钮时

实际问题:

当我从脚本运行应用程序时,这种方法非常有效, 此方法对于文件的编译/可执行版本(.exe)无效(这是预期的,因为在编译期间,所有导入的模块都将被删除 也已编译,因此以后修改它们将不起作用)

问题是:

我希望我的test_it.py文件即使在编译应用程序后也能重新加载


如果您希望查看应用程序的工作版本以自己进行测试。你会发现它here