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

相关推荐
大圣编程7 小时前
面向对象深度理解
java·开发语言·算法
爱喝水的鱼丶8 小时前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇) 第四篇:SAP 报表异常处理机制:数据校验与消息提示规范落地
开发语言·数据库·学习·算法·sap·abap
影寂ldy8 小时前
C# const 常量 / readonly 只读 / static readonly
java·开发语言·c#
C+-C资深大佬8 小时前
在PyCharm中创建虚拟环境的具体步骤是什么?
ide·python·pycharm
iCxhust8 小时前
c#多串口重量采集上位机程序
开发语言·汇编·c#·微机原理·8088单板机
QK_008 小时前
volatile 关键字核心作用
开发语言
Dxy12393102168 小时前
Python Tensor 向量入门:从零理解深度学习的“数据语言“
开发语言·python·深度学习
林森lsjs9 小时前
【日耕一题】3. 通过键盘输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
java·开发语言
yzy859 小时前
数据同步工具 -- syncthing
开发语言
catchadmin9 小时前
PHP 应用 security.txt 漏洞披露实践
开发语言·php