【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函数。

相关推荐
Leo.yuan几秒前
Flink + Kafka + Doris 之外的另一条路:FineDataLink 一体化实时数仓方案
开发语言·javascript·ecmascript
2601_962381861 分钟前
Python异步编程async/await核心用法
python·async/await·事件循环·异步编程·并发调度
量化吞吐机1 分钟前
会写代码学量化,先把数据、规则和执行连清楚
人工智能·python
只睡四小时2 分钟前
端侧推理实战:face-api.js 零后端人脸识别踩坑记
开发语言·javascript·ecmascript
某不知名網友6 分钟前
C++ 深浅拷贝:从默认拷贝到 Rule of Five
java·开发语言
君顾118 分钟前
外卖CPS小程序开发实战指南:从零到上线的完整流程
java·开发语言·外卖
blue_ice .21 分钟前
DDS原理及简易实现
开发语言·经验分享·笔记·嵌入式硬件·fpga开发
泡干脆面就番茄23 分钟前
02_摄像头实时人脸检测与微笑识别
python·opencv
励志不掉头发的内向程序员23 分钟前
【LibreCAD 2D架构】鼠标点下的坐标为什么会被“吸”走?LibreCAD 对象捕捉系统解析
开发语言·c++·qt·学习·系统架构
Generalzy30 分钟前
像 gofmt 一样格式化 Python:Black、Ruff、YAPF、autopep8 谁才是 2026 年的首选?
开发语言·python