python应用中使用了multiprocessing多进程,使用pyinstaller打包出来的程序可能产生多个窗口
问题现象
我用pyside(类似pyqt)开发了一个应用程序。直接使用pycharm运行,一切都正常。但当我使用pyinstaller将它打包之后,再去运运行,发现窗口总是产生多个。
问题分析
直接运行没有问题,那么问题肯定和pyinstaller相关。在网上搜索之后发现是由多进程引起的(multiprocessing模块)。
在他的wiki中有说明:
使用该multiprocessing模块时,必须调用
multiprocessing.freeze_support()
紧接在if name == ‘main’:主模块行之后。
这在Python官方文档中也有说明:
multiprocessing.freeze_support()
添加对使用multiprocessing已冻结的程序生成 Windows 可执行文件的支持。(已使用py2exe、 PyInstaller和cx_Freeze进行测试。)
需要在主模块行之后直接调用此函数。例如:if __name__ == '__main__'
from multiprocessing import Process, freeze_supportdef f():print('hello world!')if __name__ == '__main__':freeze_support()Process(target=f).start()
如果freeze_support()省略该行,则尝试运行冻结的可执行文件将引发RuntimeError。
在 Windows 以外的任何操作系统上调用时,调用freeze_support()都无效。另外,如果该模块在Windows上由Python解释器正常运行(程序没有被冻结),则freeze_support()没有任何影响。
相关文章:
python应用中使用了multiprocessing多进程,使用pyinstaller打包出来的程序可能产生多个窗口
问题现象 我用pyside(类似pyqt)开发了一个应用程序。直接使用pycharm运行,一切都正常。但当我使用pyinstaller将它打包之后,再去运运行,发现窗口总是产生多个。 问题分析 直接运行没有问题,那么问题肯定…...
数据结构与算法——13.队列的拓展
这篇文章主要讲一下双端队列,优先队列,阻塞队列等队列的拓展内容。 目录 1.队列拓展概述 2.双端队列的链表实现 3.双端队列的数组实现 4.优先队列无序数组实现 5.阻塞队列 6.总结 1.队列拓展概述 首先来看一张图,来大致了解一下他们的…...
机器学习入门教学——损失函数(交叉熵法)
1、前言 我们在训练神经网络时,最常用到的方法就是梯度下降法。在了解梯度下降法前,我们需要了解什么是损失(代价)函数。所谓求的梯度,就是损失函数的梯度。如果不知道什么是梯度下降的,可以看一下这篇文章:机器学习入…...
pytest一些常见的插件
Pytest拥有丰富的插件架构,超过800个以上的外部插件和活跃的社区,在PyPI项目中以“ pytest- *”为标识。 本篇将列举github标星超过两百的一些插件进行实战演示。 插件库地址:http://plugincompat.herokuapp.com/ 1、pytest-html࿱…...
基于51单片机多路DTH11温湿度检测控制系统
一、系统方案 1、本设计采用51单片机作为主控器。 2、DHT11采集温度度,支持3路温度度,液晶1602显示。 3、按键设置报警阀值。 4、系统声光报警。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 //初始化LCD*********…...
宝塔重装注意事项
欢迎关注我的公众号:夜说猫,让一个贫穷的程序员不靠打代码也能吃饭~ 前言 宝塔8.0版本,宝塔卸载重装,或者重装Linux系统后重新安装宝塔也适用。 不能上来直接就执行安装宝塔脚本,除非之前没有安装过宝塔。 步骤 1、…...
【MySQL】 MySQL的增删改查(进阶)--壹
文章目录 🛫数据库约束🌴约束类型🎋NOT NULL约束🎍UNIQUE:唯一约束🌳DEFAULT:默认值约束🎄PRIMARY KEY:主键约束🍀FOREIGN KEY:外键约束…...
Map<K,V>的使用和List学习
Map Map是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。对于静态类型的查找来说,一般直接遍历或者用二分查找【不会对区间进行插入和删除操作】 而在现实生活中的查找比如: 根据姓名查询考试成绩通讯录…...
Flask实现Web服务调用Python程序
Flask实现Web服务调用Python程序_flask调用python程序_小白白程序员的博客-CSDN博客 【小沐学Python】Python实现Web服务器(Flask入门)_python flask web开发_爱看书的小沐的博客-CSDN博客...
步步为营,如何将GOlang引用库的安全漏洞修干净
文章目录 引场景构建第一步、直接引用的第三方库升级修复策略1.确认是否为直接引用的第三方库2.找到需要升级的版本是否为release版本 第二步、间接引用的第三方库升级修复策略那么问题来了,我们这么间接引用库的对应的直接引用库是哪个呢? (…...
as-if-serial与happens-before原则详解
文章目录 前言详解解决多线程下的问题 Happens-before原则总结as-if-serial语义happens-before的例子 前言 "as-if-serial"原则是Java内存模型中的一个重要概念。该规则规定:不管怎么重排序(编译期间的重排序,指令级并行的重排序&…...
基于Yolov8的工业小目标缺陷检测(2):动态蛇形卷积(Dynamic Snake Convolution),实现暴力涨点 | ICCV2023
目录 1.工业油污数据集介绍 1.1 小目标定义 1.2 难点 1.3 工业缺陷检测算法介绍 1.3.1 YOLOv8...
ARM64汇编基础
ARM64汇编基础 主要内容 到目前为止,大部分的移动设备都是64位的arm架构,一直想抽个时间系统学习下,这个周末就专门来学习下。毕竟两天的时间,也只是简单的入门了解下,为后续工作和学习打下基础。 本次学习的主要内容…...
Nodejs 第十六章(ffmpeg)
FFmpeg 是一个开源的跨平台多媒体处理工具,可以用于处理音频、视频和多媒体流。它提供了一组强大的命令行工具和库,可以进行视频转码、视频剪辑、音频提取、音视频合并、流媒体传输等操作。 FFmpeg 的主要功能和特性: 格式转换:…...
k8s集群部署es
集群内创建需要用到存储,此处举例使用腾讯云cfs共享存储 内存limits限制不需要加,否则会经常内存溢出导致es集群故障 apiVersion: apps/v1 kind: StatefulSet metadata:name: es7-clusternamespace: elasticsearch spec:serviceName: es-clusterreplica…...
学习记忆——宫殿篇——记忆宫殿——记忆桩——火车+外院+客厅+卧室
护板 警示灯 烟筒 采集箱 司炉室 桥 电线杆 棚顶 车厢 护栏 植物 石阶 水泥台 竹门 树干 躺椅 柱子 墙 池 洞 方灯 枕头 树 浴池 墙 射灯 藤条 浴巾框 耳环 窗户 灯 沙发 壁炉 吊灯 兵马俑 门 石佛 沙发椅 圆木 弧形木箱盖 床 窗帘 画板 纸伞 花 沙发背 颜料 抽屉...
QT用户登录注册,数据库实现
登录窗口头文件 #ifndef LOGINUI_H #define LOGINUI_H#include <QWidget> #include <QLineEdit> #include <QPushButton> #include <QLabel> #include <QMessageBox>#include <QSqlDatabase> //数据库管理类 #include <QSqlQuery> …...
GEE学习总结(9)——像元二分法计算月度植被覆盖度(MODIS)
像元二分法计算植被覆盖度 通过MODIS的NDVI数据集MOD13Q1和像元二分法计算植被覆盖度 var multi_NDVI ee.ImageCollection(MODIS/006/MOD13Q1).filterDate(2015-06-01, 2016-09-01).select(NDVI).max().divide(10000).clip(geometry);var ndviVis {min: 0.0,max: 1,palette…...
RabbitMQ用户命令_策略_日志
RabbitMQ相关安装 Centos离线安装RabbitMQ并开启MQTT Docker安装rabbitMQ RabbitMQ集群搭建和测试总结_亲测 Docker安装RabbitMQ集群_亲测成功 RabbitMQ创建管理员命令 #查看当前用户命令: rabbitmqctl list_users#创建用户和密码 rabbitmqctl add_user admin…...
停车场系统、智慧城市停车、智慧社区、物业管理、新能源充电、人脸门禁 uniapp 系统源码
1. 智慧停车 支持模式 封闭性单个停车场路边停车(车位级管理)大小场(场中场),多场子并行或嵌套 所有者模式 统一平台管理总平台下子账号(区域代理)自建场地资源,自行维护数据总平台下子账号(区域代理)再分配和单个停车场管理人员(物业管理/维保/保安/财务…...
开源动作捕捉与3D数据采集:FreeMoCap如何颠覆传统动捕方案
开源动作捕捉与3D数据采集:FreeMoCap如何颠覆传统动捕方案 【免费下载链接】freemocap Free Motion Capture for Everyone 💀✨ 项目地址: https://gitcode.com/GitHub_Trending/fr/freemocap 在游戏开发、动画制作和运动科学研究领域,…...
腾讯云+Astrbot个人AI部署,接入QQ机器人
1、腾讯云创建云服务器 之所以选择腾讯云是因为可以领一个月免费服务器 地址:https://cloud.tencent.com/ 服务器配置情况: 这里我获取的是轻量应用服务器(Lighthouse),适合网站搭建、开发测试等多种场景。以下是详细…...
4大核心能力赋能企业级视频资源管理:抖音批量下载工具的技术实现与商业价值
4大核心能力赋能企业级视频资源管理:抖音批量下载工具的技术实现与商业价值 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字化内容爆发的时代,企业级视频资源管理面临着效率与成…...
DXVK解决方案:基于Vulkan的Direct3D兼容层性能优化指南
DXVK解决方案:基于Vulkan的Direct3D兼容层性能优化指南 【免费下载链接】dxvk Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk DXVK是一个基于Vulkan的Direct3D 8/9/10/11实现层…...
LeetCode 102. 二叉树的层序遍历:从理论到实践的完整剖析
LeetCode 102. 二叉树的层序遍历:从理论到实践的完整剖析 问题描述 给你二叉树的根节点 root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,nu…...
魔兽世界API开发助手:从新手到专家的全流程解决方案
魔兽世界API开发助手:从新手到专家的全流程解决方案 【免费下载链接】wow_api Documents of wow API -- 魔兽世界API资料以及宏工具 项目地址: https://gitcode.com/gh_mirrors/wo/wow_api 价值定位:如何避免90%的插件开发陷阱? 在魔…...
HunyuanVideo-Foley效果展示:火车进站音效+月台场景视频生成实录
HunyuanVideo-Foley效果展示:火车进站音效月台场景视频生成实录 1. 效果展示开场 想象一下这样的场景:一列蒸汽火车缓缓驶入月台,伴随着汽笛声、铁轨摩擦声和人群嘈杂声。现在,通过HunyuanVideo-Foley技术,我们可以一…...
Linux服务器运维:5个最容易被忽略的故障排查技巧(附实战命令)
Linux服务器运维:5个最容易被忽略的故障排查技巧(附实战命令) 在Linux服务器运维的日常工作中,有些故障排查点往往被工程师们忽视,直到问题爆发才追悔莫及。本文将揭示五个最容易被忽略但至关重要的排查技巧ÿ…...
清音刻墨镜像免配置亮点:内置10+中文领域词典(医疗/法律/IT)开箱即用
清音刻墨镜像免配置亮点:内置10中文领域词典(医疗/法律/IT)开箱即用 1. 为什么字幕对齐需要专业词典? 做视频字幕的朋友都知道,最头疼的不是生成文字,而是让文字和声音完美对齐。普通字幕工具遇到专业术语…...
Mojo项目无法import本地.py模块?工程师连夜修复的6种路径/环境变量/Loader级配置错误
第一章:Mojo项目无法import本地.py模块的根本原因剖析Mojo 语言虽兼容 Python 语法,但其运行时环境与 CPython 截然不同——它基于 LLVM 编译为原生机器码,并通过 Mojo Runtime 执行,**不依赖 Python 解释器进程**。因此ÿ…...
