【python】tkinter使用多进程打包成exe后multiprocessing无法关闭对应进程

这是由于multiprocessing模块在Windows操作系统下使用fork方法创建子进程时会导致打包成exe后无法正常运行的问题。

可以尝试使用freeze_support函数来解决这个问题。freeze_support函数是在Windows操作系统下用于支持multiprocessing模块的函数。

下面是一个示例代码:

python 复制代码
import multiprocessing
from multiprocessing import Pool, freeze_support

def worker():
    print('Worker')

if __name__ == '__main__':
    freeze_support()
    p = Pool(4)
    p.apply_async(worker)
    p.close()
    p.join()

在代码的开头,我们导入了freeze_support函数。然后,我们在if name == 'main':条件下调用了freeze_support函数。这样,在Windows操作系统下打包成exe后,multiprocessing模块就能够正常运行了。

注意,freeze_support函数只需要在Windows操作系统下调用,对其他操作系统没有影响。所以,你可以在代码中加入一个判断,只在Windows操作系统下调用freeze_support函数。

相关推荐
cvby7 分钟前
C++11--右值引用和移动语义
开发语言·c++
en.en..19 分钟前
TCP/UDP 收发流程(网络字节序---函数讲解)
开发语言·php
宸津-代码粉碎机25 分钟前
Spring AI 高危CVE漏洞深度复盘|生产禁跑版本汇总+临时防御+修复方案
java·大数据·人工智能·python·spring
名字还没想好☜31 分钟前
Go 用 json.Decoder 流式解析大 JSON:边读边处理不爆内存
开发语言·后端·golang·go·json
xiangyun6134 分钟前
【408数据结构 03】线性表与顺序表:C++手写SeqList
开发语言·数据结构·c++
Lsir10110_1 小时前
从按钮“点不动“讲起——深入理解 Qt 信号槽机制
开发语言·qt·信号处理
君科程序定做1 小时前
用 IDL 处理高分一号(GF-1 / GF-1B/C/D)数据
c语言·开发语言
敲代码的嘎仔1 小时前
用 Redis 合并写 + DelayQueue 延迟检测,把视频播放进度写库频率降到 1/60
java·开发语言·数据库·redis·缓存·音视频·高并发
承渊政道1 小时前
Python IDLE鸿蒙PC适配全记录:用 ArkUI 重建编辑、运行、Shell 与基础调试闭环
python·microsoft·harmonyos·鸿蒙系统·pc端
zjh9005301 小时前
Kotlin黑科技:空安全与Java兼容性深度解析
python