【发布时间】:2017-02-20 12:32:14
【问题描述】:
对于下面的代码,如果在命令提示符下运行,结果是: 1 2 3 4 5 6 1 2 3 4 5 6 . . .
如果在Pycharm中运行,结果只有: 1 2 3 4 5 6. 也就是说,restart_program() 在 Pycharm 中不会产生任何东西。
import sys
import os
def restart_program():
"""Restarts the current program.
Note: this function does not return. Any cleanup action (like
saving data) must be done before calling this function."""
python = sys.executable
os.execl(python, python, *sys.argv)
if __name__ == "__main__":
for i in range(1,10,1):
print i
if i>5:
restart_program()
【问题讨论】:
-
sys.executable在 PyCharm 中是不一样的。可能会尝试重新启动 PyCharm(但由于它可能受到多个实例的保护而未能这样做,但不确定)。在这两种情况下都尝试打印sys.executable。 -
它在 Pycharm 中工作。
-
@Jean-FrançoisFabre sys.executables 在这两种情况下都是相同的,在我的电脑中是 python.exe。
-
@McGrady 在 Pycharm 的终端中可以使用,但是当我使用 Ctrl+Shift+F10 运行程序时就不行了。
标签: python pycharm application-restart python-os