【发布时间】:2014-01-06 08:02:00
【问题描述】:
我在 Windows 7 下使用 wxpython GUI 编写了一个 python (2.7) 应用程序。当我运行该应用程序时,我看到一个 python.exe*32 进程在任务管理器中启动。当我退出应用程序时(使用 wxpython 的Window.Close() 方法关闭 GUI 窗口),python.exe*32 进程仍然存在。当我再次运行该应用程序时,第二个 python.exe*32 进程启动,它继续运行。每个python.exe*32 进程占用大约 180 MB 内存,并且会降低计算机速度。
我以这种方式启动我的应用程序:
if __name__ == "__main__":
app = wx.App(False)
frame = MainWindow("MyApp")
frame.Show()
app.MainLoop()
当我退出我的应用程序时,如何使python.exe*32 进程终止?
【问题讨论】:
-
出于好奇,您如何启动您的python 应用程序? (
sys.exit(1)应该终止所有子进程和父进程) -
请看我的问题,我更新了。
-
我想,你如何启动整个python代码,比如:“python whambam.py”或者?
-
我使用 Eclipse 和 PyDev,然后单击工具栏上的“运行”按钮。
-
你有它。试试看
sys.exit(1)是否终止父进程。如果不尝试os._exit(1)(我之所以这么说是因为我不知道 Eclipse 如何启动它的子进程 python.exe*32 :) 而且如果您的应用程序中有任何线程,请务必终止/停止它们.并将sys.exit(1)放在app.MainLoop()之后,并通过在app.MainLoop()和sys.exit(1)之间插入print("moo")来确保app正确退出
标签: python windows memory process