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

相关推荐
lljss20206 分钟前
C# 定时器类实现1s定时器更新UI
开发语言·c#
白杨攻城狮8 分钟前
C# 关于 barierr 心得
开发语言·c#
zhglhy9 分钟前
Jaccard相似度算法原理及Java实现
java·开发语言·算法
catchadmin16 分钟前
PHP 8.5 容器化实战指南
开发语言·php
nono牛17 分钟前
完整bash语法教程:从零到专家
开发语言·chrome·bash
岁月宁静19 分钟前
🐍 Python 核心知识点:从零开始快速构建 Python 知识体系
python
啥都不懂的小小白22 分钟前
Java日志篇3:Logback 配置全解析与生产环境最佳实践
java·开发语言·logback
江沉晚呤时23 分钟前
延迟加载(Lazy Loading)详解及在 C# 中的应用
java·开发语言·microsoft·c#
Hard but lovely26 分钟前
C/C++ ---条件编译#ifdef
c语言·开发语言·c++
董世昌4127 分钟前
js怎样控制浏览器前进、后退、页面跳转?
开发语言·前端·javascript