如何防止python IDLE在运行新脚本时重新启动

时间:2017-05-05 21:32:31

标签: python python-idle

我使用Python 3.6.1 IDLE。我希望能够在维护本地环境(变量等)的同时运行一系列脚本,就像我已经逐行输入所有命令一样。但是,每当我执行脚本时,环境都会重新启动,并且我将丢失先前执行的所有变量。

我有什么办法可以防止重启吗?我不想在shell中逐行输入内容。

这个问题与Run a module in IDLE (Python 3.4) without Restart类似,但目前还没有令人信服的答案,可能是因为这个问题措辞混乱。

编辑:我将提供一些背景知识,以便更清楚地说明我为什么要运行与第一个脚本共享状态的第二个脚本。我使用Selenium Web Driver从我的大学网络邮箱帐户转发电子邮件。如果我经常登录,Outlook Web App会意识到奇怪的事情正在发生并阻止访问。所以我想用第一个脚本登录一次,然后能够在第一个脚本之上测试不同的转发脚本。所以我能做的就是运行第一个脚本,然后逐个将第二个脚本输入shell。但那真的很烦人。如果我可以运行第二个脚本就好像它被输入shell一样,即没有重新启动,这将是很好的。

2 个答案:

答案 0 :(得分:2)

如何编写调用execfile("other_script.py")(在Python 2中)或exec(open("other_script.py").read())(Python 3)的主脚本?然后在IDLE中运行主脚本。您可能需要shebang行和(可能)每个脚本的适当执行权限。

请参阅此thread,因为我从那里讨论的一些内容中得出了答案。

另一种选择是自动化你的东西"在shell中输入东西"使用shell脚本(bash,batch,sh,您在系统上使用的任何shell)。

但实际上,正如其他人所说的那样,通过将其分解为单独的文件来模块化这项任务并不是很有用。为什么不创建一个包含所需功能的Python程序,然后根据需要调用它们?

答案 1 :(得分:0)

于2019年6月添加:Run在编辑器Run... Customized菜单上打开一个带有[X] Restart的对话框。取消选中该复选框,跳过重新启动。