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

相关推荐
爱笑的眼睛111 分钟前
Flask应用API深度开发:从单体架构到微服务设计模式
java·人工智能·python·ai
AI小云2 分钟前
【数据操作与可视化】Matplotlib绘图-常用操作
python·数据可视化
j***12152 分钟前
计算机体系结构期末复习3:GPU架构及控制流问题
java·开发语言·架构
zore_c2 分钟前
【C语言】文件操作详解1(文件的打开与关闭)
c语言·开发语言·数据结构·c++·经验分享·笔记·算法
木婉清fresh6 分钟前
测开python高频面试精选100题
开发语言·python·面试
彼岸花开了吗6 分钟前
构建AI智能体:四十、K-Means++与RAG的融合创新:智能聚类与检索增强生成的深度应用
人工智能·python
缘三水7 分钟前
【C语言】9.操作符详解(上)
c语言·开发语言·新人首发
刃神太酷啦9 分钟前
C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)
java·c语言·开发语言·c++·qt·算法·leetcode
Gomiko11 分钟前
JavaScript基础(七):数组
开发语言·javascript·ecmascript
一只乔哇噻11 分钟前
java后端工程师+AI大模型进修ing(研一版‖day58)
java·开发语言