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

相关推荐
爱上语文2 分钟前
Springboot三层架构
java·开发语言·spring boot·spring·架构
Crossoads4 分钟前
【数据结构】排序算法---快速排序
c语言·开发语言·数据结构·算法·排序算法
技术无疆5 分钟前
【Python】Anaconda插件:Sublime Text中的Python开发利器
ide·python·编辑器·pip·pygame·sublime text·python3.11
6230_6 分钟前
git使用“保姆级”教程2——初始化及工作机制解释
开发语言·前端·笔记·git·html·学习方法·改行学it
加油=^_^=13 分钟前
MySQL基础篇的补充
数据库·python·mysql
挽月00113 分钟前
C++单例模式
开发语言·c++·单例模式
Pandaconda16 分钟前
【计算机网络 - 基础问题】每日 3 题(十)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展
loveLifeLoveCoding17 分钟前
Java List sort() 排序
java·开发语言
AngeliaXue26 分钟前
Java集合(List篇)
java·开发语言·list·集合
世俗ˊ27 分钟前
Java中ArrayList和LinkedList的比较
java·开发语言