PyStand icon indicating copy to clipboard operation
PyStand copied to clipboard

py代码加了多线程后运行出错怎么解决

Open oouu00 opened this issue 1 year ago • 3 comments

py文件直接运行是可以的 但是pyinstaller打包也是一样的出错,表现为会运行一堆的程序,解决办法是在 if name=='main:'下添加一句multiprocessing.freeze_support() 。 但是pystand这样还是不行,有没有解决办法

oouu00 avatar Sep 14 '24 01:09 oouu00

这个叫多进程,搜索一下吧,之前有人反馈过类似问题

yunluo avatar Sep 17 '24 02:09 yunluo

我也遇到类似的问题,我的项目使用多线程,在子线程中运行一个 websocket 服务,且端口是写死的。我直接运行程序能够正常执行,但是使用 PyStand 就会出现端口已被占用的报错,并且使用的内存是正常执行的好几倍

BHznJNs avatar Jul 04 '25 03:07 BHznJNs

破案了,按照 https://github.com/skywind3000/PyStand/issues/21 这个 issue 的说法,在 PyStand.py 中加上如下代码即可解决:

import sys
import multiprocessing
if not hasattr(sys, 'frozen'):
    sys.frozen = True
multiprocessing.freeze_support()

BHznJNs avatar Jul 04 '25 03:07 BHznJNs