python3 pyinstaller打包exe运行无限创建进程问题 multiprocessing windows

2023-10-31

mulitprocessing模块在window环境下使用有诸多限制,需要注意,其中之一就是在main.py下使用multiprocessing启动子进程问题:

该问题在pycharm中没有,pycharm环境下运行调试都是正常的,当使用pyinstaller打包为exe文件时,双击exe文件运行,会进入无限创建进程的死循环,最终导致系统崩溃,所有cpu跑满。

导致该问题的根本原因是:windows环境下python通过启动进程创建子进程时,子进程启动会导入父进程的py文件,运行父进程的创建子进程代码导致陷入无限循环(这只是windows下出现的问题的一种形式,还有其他形式, 官文上说叫导入主模块产生的副作用,)

针对该情况,multiprocessing提供了freeze_support来实现main module的安全导入,在运行multiprocessing创建进程前调用该方法:

if name == ‘main’:
import multiprocessing
# 该方法作用是阻止子进程运行其后面的代码
multiprocessing.freeze_support()
pool = Pool(3)
try:
log.info(“Start Program.”)
pool.apply_async(start_queue_manager, error_callback=error_callback)
pool.apply_async(start_server, error_callback=error_callback).ready()
pool.apply_async(start_browser, error_callback=error_callback)
except:
log.error(traceback.format_exc())
finally:
pool.close()
pool.join()

原文链接:https://blog.csdn.net/fly_leopard/article/details/121610641

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python3 pyinstaller打包exe运行无限创建进程问题 multiprocessing windows 的相关文章

随机推荐

  • js将相同属性id的数组对象进行合并

    const arr1 id 1 name Alice id 2 name Bob id 3 name Charlie const arr2 id 2 age 20 id 3 age 30 id 4 age 40 const mergedAr
  • 封装、继承和多态

    目录 前言 一 什么是封装 二 什么是继承 三 什么是多态 前言 其实封装 继承和多态不仅仅是java的特性 而是所有面向对象程序的三大特性 一 什么是封装 封装就是对类内部的实现细节进行隐藏 然后对类外提供公开的接口 在Java中主要通过
  • Python:基于爬虫技术的数据分析

    爬取的网站 CSDN中我的个人主页 网址 https blog csdn net Faith cxz 可根据自己需要找寻对应网址 目的 获取到该主页的基本信息 包括文章标题 发表时间 访问量 排名等信息 全部代码可通过此gitee账号来获取
  • git stash !将目前还不想提交的但是已经修改的内容进行保存至堆栈

    git stash 命令 总的来说 git stash命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中 后续可以在某个分支上恢复出堆栈中的内容 在开发过程中 本地修改还未提交 或者暂时不能提交到仓库的时候 这个时候工作任务
  • 黑马Python教程实战项目--美多商城(一)

    一 项目介绍 这是跟着Python教程做的一个实战项目 美多商城 这个项目主要包括首页广告 注册 登陆 QQ登陆 个人中心 收货地址 我的订单 修改密码 商品列表 商品搜索 商品详情 购物车 结算订单 提交订单 支付宝支付 支付结果处理 订
  • 【ChatGLM】记录一次Windows部署ChatGLM-6B流程及遇到的问题

    文章目录 部署环境 文件下载 项目文件 模型配置文件 模型文件 运行demo 遇到的问题 部署环境 系统版本 Windows 10 企业版 版本号 20H2 系统类型 64 位操作系统 基于 x64 的处理器 处理器 Intel Core
  • Ubuntu安装Anaconda详细步骤(Ubuntu21.10,Anaconda3-5.3.1)

    1 下载anaconda3 在清华源镜像下载Linux版本的anaconda3 下载地址 Index of anaconda archive 清华大学开源软件镜像站 Tsinghua Open Source MirrorIndex of a
  • 使用mybatis example 和 java 8的特性来实现多表关联且带有查询条件的查询

    Mybatis Example的好处 使用了面向对象的思想 其关联数据库的单表查询都能自动生成 减少了劳动量 同时将复杂查询拆分成单表查询 加快了查询速度 让其复杂的关联在service层中使用代码进行拼装 这样处理速度会比一个大查询快得多
  • 【AdGuard Home】轻松实现全屋去广告与追踪,AdGuard Home助力更安全浏览体验

    序言 在当今越来越数字化的社会中 广告和追踪器成为了许多用户最不喜欢的东西之一 用户访问网站或使用应用程序时 经常会被恼人的广告和追踪器所干扰 甚至可能泄露个人隐私 这就是为什么广告拦截 反追踪插件变得越发受欢迎的原因 这些插件利用拦截规则
  • WordCount案例及MapReduce运行的三种方式

    目录 一 MapReduce案例准备 二 运行方式一 本地执行 三 运行方式二 打jar包 集群执行 四 运行方式三 以idea为入口 集群执行 一 MapReduce案例准备 在Idea中创建一个MapReduce工程 对指定目录下文件的
  • OpenCV学习记录之摄像头调用

    关于opencv调用摄像头的问题主要是因为摄像头的打开有延时 在显示图像前 要用if语句判断图像是否存在 否则会报错 具体的 教程里的源程序 将if条件句里 break去掉 并增加else语句 include
  • 本地新项目上传到SVN服务器

    1 在一个已有检出的项目文件夹中 在空白处 右键 gt TortoiseSVN gt Repo browser 这样就到了svn服务器的目录了 在这里插入图片描述 https img blog csdnimg cn a91b52172ab3
  • 业内人员告诉你银行测试到底做什么,怎么进银行测试.....

    前言 从一家工作了五年的软件公司的测试管理者跳槽到银行做软件测试 短短两个月 对银行测试有了初步认识 总结和记录下来 加深个人的理解 同时也共享给各位 银行作为大家的理财顾问 对金钱非常敏感 频繁甚至偶尔出现的软件故障都会打击顾客的信心 如
  • Reconstruction by inpainting for visual anomaly detection阅读笔记

    Reconstruction by inpainting for visual anomaly detection阅读笔记 Abstract 视觉异常检测 解决图像中偏离正常外观的区域分类和定位问题 一种流行的方法是在无异常图像上训练自动编
  • CentOS7.3安装elasticsearch6.8.6

    CentOS7 3安装elasticsearch6 8 6 一 环境 二 下载elasticsearch 6 8 6 tar gz 三 创建用户 四 修改配置文件 1 vim elasticsearch 6 8 6 conf jvm opt
  • 分组密码的加密模式(CFB,OFB)

    1 j 比特密码反馈CFB模式 Cipher feedback 1 1CFB模式特点 若待加密消息必须按字符 如电传电报 或按比特处理时 可采用CFB模式 CFB实际上是将加密算法DES作为一个密钥流产生器 CFB与CBC的区别是反馈的密文
  • OpenCV-Python图像击中击不中变换理解的关键知识点及自定义实现

    前往老猿Python博客 https blog csdn net LaoYuanPython 声明 本文为老猿自我体悟和总结 相关内容无公开资料 禁止转载和抄袭 博文传送门 老猿关于HTM变换的博文目录请见 https blog csdn
  • 数据指标应用场景说明

    科技飞速发展的时代 企业信息化建设会越来越完善 越来越体系化 当今数据时代背景下更加强调 重视数据的价值 以数据说话 通过数据为企业提升渠道转化率 改善企业产品 实现精准运营 为企业打造自助模式的数据分析成果 以数据驱动决策 数据指标体系是
  • uniapp掉完接口后刷新当前页面方法

    uniapp掉完接口后刷新当前页面方法 掉完接口 里面加下面这个方法uni redirectTo setTimeout gt uni redirectTo 当前页面路由 url pages property mutualrotation m
  • python3 pyinstaller打包exe运行无限创建进程问题 multiprocessing windows

    mulitprocessing模块在window环境下使用有诸多限制 需要注意 其中之一就是在main py下使用multiprocessing启动子进程问题 该问题在pycharm中没有 pycharm环境下运行调试都是正常的 当使用py