【python】tkinter使用多进程打包成exe后multiprocessing无法关闭对应进程

这篇具有很好参考价值的文章主要介绍了【python】tkinter使用多进程打包成exe后multiprocessing无法关闭对应进程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这是由于multiprocessing模块在Windows操作系统下使用fork方法创建子进程时会导致打包成exe后无法正常运行的问题。

可以尝试使用freeze_support函数来解决这个问题。freeze_support函数是在Windows操作系统下用于支持multiprocessing模块的函数。

下面是一个示例代码:

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函数。文章来源地址https://www.toymoban.com/news/detail-669567.html

到了这里,关于【python】tkinter使用多进程打包成exe后multiprocessing无法关闭对应进程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python中使用multiprocessing模块创建进程

            在计算机编程领域,多进程编程是一种常见的并发编程技术,特别适用于利用多核处理器来提高程序性能和并行处理任务。Python作为一种功能强大的编程语言,提供了多种方法来实现多进程编程。其中,multiprocessing模块为我们提供了一种简单而强大的方式来创建和

    2024年02月22日
    浏览(37)
  • python main 函数-启动-传递参数 python 打包 exe C# 进程传参

    在Python编程中,我们经常需要从命令行或其他外部环境中获取参数。Python提供了一种简单而灵活的方式来处理这些参数,即通过main函数传参 1.python main 函数-启动-传递参数 test.py 2. 如果直接传参给 脚本 输出:  输入 aa bb cc cc pyinstaller是一个流行的Python打包工具,它可以将P

    2024年02月09日
    浏览(39)
  • python pyinstaller打包常见问题(一):无法生成exe文件/打包闪退

    小游戏程序,本地环境能正常运行 程序调用了wav文件,即音效资源文件 程序调用wav路径正确,也是采用绝对路径 程序制作完成后,进行了以下三步打包操作: 在需要打包的程序的目录上,我进入终端输入以下命令进行打包: 2.1、打开生成的snake.spec文件 2.2、修改Analysis 的

    2024年01月22日
    浏览(70)
  • python pyinstaller打包的exe在win7系统无法运行问题解决方法

    目录 一 .问题起因 二.解决方法 注意: pyinstaller打包之前,请先将bulid文件夹和dist文件夹删除,这两个文件夹是pyinstaller打包后自动生成的,删除重新打包可以避免版本干扰 .         近期做了一个溯源码项目(开发工具使用的是pycharm2023.1.3),由于是在windows环境运行,于是采用了pyin

    2024年02月07日
    浏览(67)
  • Python进程池multiprocessing.Pool

    鲲鹏920:192核心 内存:756G python:3.9 在做单纯的cpu计算的场景,使用单进程核多进程的耗时做如下测试: 单进程情况下cpu的占用了如下,占用一半的核心数: 每一步和总耗时如下: cpu占用如下,每个进程基本占用48个左右核心数; 多进程的耗时如下: 每一个进程的耗时为

    2024年01月17日
    浏览(36)
  • Python分享之多进程探索 (multiprocessing包)

    在初步了解Python多进程之后,我们可以继续探索multiprocessing包中更加高级的工具。这些工具可以让我们更加便利地实现多进程。   进程池 进程池 (Process Pool)可以创建多个进程。这些进程就像是随时待命的士兵,准备执行任务(程序)。一个进程池中可以容纳多个待命的士兵。

    2024年02月08日
    浏览(31)
  • 【Python】项目打包:如何使用PyInstaller打包python程序(exe)

    常用python的开发者现在也是很多的,用python可以做很多事情,如果涉及到python桌面开发一定会使用PyInstaller将程序打包成 执行程序 ,如果要求更高的话还会再次封装成 安装程序 (工具inno setup)。 执行程序就是复制到其他电脑可以直接运行,不需要安装配置python环境。 安装

    2024年02月13日
    浏览(56)
  • Python进程池multiprocessing.Pool八个函数对比

    Python的multiprocessing.Pool类提供了多种方法来分发任务给进程池中的工作进程。这些方法在功能和用途上有所不同,适用于不同的场景。以下是multiprocessing.Pool中八个主要函数的对比 apply() 功能:阻塞地执行一个函数,直到这个函数的执行完成。 用法:apply(func, args=(), kwds={}) 特

    2024年02月04日
    浏览(35)
  • 使用 multiprocessing 多进程处理批量数据

    示例代码 multiprocessing.Pool 创建进程池, 传入的参数是要要使用的 CPU 内核数量, 直接用 cpu_count() 可以拿到当前硬件配置所有的 CPU 内核数. pool.map 可以直接将处理后的结果拼接成一个 list 对象 应用在实际数据处理代码的效果对比: 普通处理方式, 用时 221 秒 多进程处理方式, 用时

    2024年02月09日
    浏览(40)
  • Python 标准类库-并发执行之multiprocessing-基于进程的并行

    Python3.6 multiprocessing 是一个支持使用类似于线程模块的API派生进程的包。该包同时提供本地和远程并发,通过使用子进程而不是线程,有效地避开了全局解释器锁。因此, multiprocessing 模块允许程序员充分利用给定机器上的多个处理器。它同时在Unix和Windows上运行。 该模块还引

    2024年02月09日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包