pyinstaller:我的cherrypy应用程序exe的2个实例被执行

发布于 2024-08-18 22:01:04 字数 277 浏览 8 评论 0原文

我有一个用 pyinstaller 制作的 exe 的 Cherrypy 应用程序。 现在,当我运行 exe 时,它​​会将自身加载两次到内存中。观察任务管理器显示第一个实例加载到大约 1k 内存中,然后一秒钟后,hte exe 的第二个实例加载到大约 3k 内存中。如果我关闭较大的一个,两个进程都会死亡。如果我关闭较小的一只,那么只有那一只会死。

使用子进程加载 exe,如果我尝试 proc.kill(),它只会杀死小进程,而使另一个进程在内存中运行。这是一起使用cherrypy和pyinstaller的副作用吗?

I have a cherrypy app that I've made an exe with pyinstaller.
now when I run the exe it loads itself twice into memory. Watching the taskmanager shows the first instance load into about 1k, then a second later a second instance of hte exe loads into about 3k ram. If I close the bigger one both processes die. If I close hte smaller one only that one dies.

Loading the exe with subprocess, if I try to proc.kill(), it only kills the small one leaving the other running in memory. Is this a sideeffect of using cherrypy and pyinstaller together?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

濫情▎り 2024-08-25 22:01:04

PyInstaller 在启动过程中生成一个子进程。 其手册的一部分

PyInstaller spawns a subprocess during its boot process. This is explained in a section of its manual.

绝情姑娘 2024-08-25 22:01:04

了解您使用的 CherryPy 版本非常重要。 2.x 系列有一个不幸的设计:自动重新加载功能总是启动 CherryPy 的第二个实例,因此第一个实例可以在子进程被杀死时重生。这一问题在版本 3 中得到修复,只使用一个进程。如果您使用的是版本 2,请通过配置条目关闭自动重新加载功能:

[global]
autoreload.on = False

It would be important to know what version of CherryPy you are using. The 2.x line had an unfortunate design: the autoreloader feature always started a second instance of CherryPy, so the first could respawn the child when it was killed off. That was fixed in version 3 to only use one process. If you are using version 2, turn off the autoreload feature via the config entry:

[global]
autoreload.on = False
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文