如果在 pyqt5 中使用多处理,PyInstaller 可执行文件不工作
PyInstaller executable is not working if using multiprocessing in pyqt5
我正在从事与 pyqt5 GUI 相关的项目。我使用 multiprocessing 来让它更快。当我 运行 我的程序在编辑器中时,它工作正常。
但是,当我使用 pyinstaller 将我的程序转换为可执行文件时,然后 运行 通过此可执行文件对程序进行编译时,它无法正常工作。
GUI 打开,但一旦涉及到代码的多处理部分就关闭(我通过放置一些打印语句来了解这一点)
我也试过mutiprocessing.freeze_support()
,还是不行。
如果我删除多处理,通过可执行程序的程序工作正常,但我需要使用多处理来使其更快。
有什么建议吗?
我刚才遇到了同样的问题,我推荐使用 Nuitka 因为它支持多处理。如果问题持续存在,请尝试使用 threading
库:
from threading import Thread
def worker(a,b):
while True:
print(a+b)
a+=1
my_thread = Thread(target = worker, args = [10,20])
my_thread.start()
如果你想在某个点终止线程,你也可以设置一个class。
我正在从事与 pyqt5 GUI 相关的项目。我使用 multiprocessing 来让它更快。当我 运行 我的程序在编辑器中时,它工作正常。 但是,当我使用 pyinstaller 将我的程序转换为可执行文件时,然后 运行 通过此可执行文件对程序进行编译时,它无法正常工作。 GUI 打开,但一旦涉及到代码的多处理部分就关闭(我通过放置一些打印语句来了解这一点)
我也试过mutiprocessing.freeze_support()
,还是不行。
如果我删除多处理,通过可执行程序的程序工作正常,但我需要使用多处理来使其更快。
有什么建议吗?
我刚才遇到了同样的问题,我推荐使用 Nuitka 因为它支持多处理。如果问题持续存在,请尝试使用 threading
库:
from threading import Thread
def worker(a,b):
while True:
print(a+b)
a+=1
my_thread = Thread(target = worker, args = [10,20])
my_thread.start()
如果你想在某个点终止线程,你也可以设置一个class。