当前位置: 首页 > news >正文

pyinstaller打包exe多种失败原因解决方法

pyinstaller打包exe多种失败原因解决方法

目录

  • pyinstaller打包exe多种失败原因解决方法
    • 1、pyinstaller安装有问题
      • 1.1 安装pyinstaller
      • 1.2 采用anconda的环境启动
    • 2、pyqt5与pyside6冲突
      • 2.1 打包生成.spec文件
      • 2.2 编辑spec文件
    • 3、打包成功后打不开exe,exe闪退
      • 3.1 spec文件添加对应库
      • 3.2 spec文件添加对应图片
      • 3.3 重新打包

在制作exe程序时,使用pyinstaller打包经常出现各种错误例如1、pyinstaller安装有问题;2、显示pyqt5与pyside6冲突;3、打包成功后打不开exe,exe闪退等。下面记录一下自己的解决方法,供参考。

1、pyinstaller安装有问题

1.1 安装pyinstaller

首先需要使用pip install pyinstaller对pyinstaller进行安装,最开始我以为我安装成功了因为结果显示
Requirement already satisfied: pyinstaller in…

但是我在使用打包语句(例如python -m PyInstaller --onefile --windowed simulation_app.py) 时一直显示
**‘pyinstaller’ 不是内部或外部命令,也不是可运行的程序或批处理文件。**无法继续下一步

1.2 采用anconda的环境启动

问了下gpt是因为太多的环境都有,系统不知道用哪个

于是我在anconda的环境中安装了pyinstaller,并在对应prompt中打开cmd界面
在这里插入图片描述

看了一下pyinstaller成功装上了,路径必须要有pyinstaller.exe程序。
在这里插入图片描述

在对应的环境启动prompt进行打包。
在这里插入图片描述

2、pyqt5与pyside6冲突

2.1 打包生成.spec文件

我先打包运行 pyinstaller --onefile --windowed --icon=app1_image1.ico app2.py
但是报错 **attempting to run hook for ‘PySide6’…**这个应该是PySide6与pyqt5冲突导致的
之后我把PySide6删了但是报错,没办法网上找了下资料,最后通过编辑spec文件解决

2.2 编辑spec文件

我是先把之前build和dist文件夹都先删除了,只剩下spec文件然后打开编辑。
在这里插入图片描述
找到**excludes=[],**修改为*excludes=[‘PySide6’],

a = Analysis(['app2.py'],pathex=[],binaries=[],datas=[],hiddenimports=[],hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,
)

重新打包解决pyqt5与pyside6冲突问题了

3、打包成功后打不开exe,exe闪退

生成完后exe闪退,我这里的原因是使用了pyqt5的这些包,供参考

import sys
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QHBoxLayout, QSpinBox, QFileDialog, QMessageBox, QStackedWidget, QSizePolicy
from PyQt5.QtGui import QIcon, QPixmap, QFont
from PyQt5.QtCore import Qt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import time

使用 PyQt5 库时,通过 PyInstaller 打包可能会遇到一些特定的问题,例如需要手动指定一些隐藏的导入。下面是详细的步骤

3.1 spec文件添加对应库

找到hiddenimports并添加对应的库

a = Analysis(['simulation_app.py'],pathex=['.'],binaries=[],datas=[('chengzi.ico', '.')],hiddenimports=['PyQt5.QtWidgets','PyQt5.QtGui','PyQt5.QtCore','PyQt5.QtSvg','PyQt5.QtNetwork','PyQt5.QtPrintSupport','PyQt5.QtMultimedia','PyQt5.QtMultimediaWidgets','PyQt5.QtWebEngineWidgets','PyQt5.QtQuick','PyQt5.QtQml'],

3.2 spec文件添加对应图片

我的exe中还有图片,所以也要添加进spec文件找到datas并添加,参考如下格式

datas=[('app1_image1.png', '.'),  # 包含 app1_image1.png 文件('result.png', '.'),  # 包含 result.png 文件],

3.3 重新打包

显示成功
在这里插入图片描述
找到dist文件夹,exe文件成功生成,并且可以正确运行。
在这里插入图片描述

相关文章:

pyinstaller打包exe多种失败原因解决方法

pyinstaller打包exe多种失败原因解决方法 目录 pyinstaller打包exe多种失败原因解决方法1、pyinstaller安装有问题1.1 安装pyinstaller1.2 采用anconda的环境启动 2、pyqt5与pyside6冲突2.1 打包生成.spec文件2.2 编辑spec文件 3、打包成功后打不开exe,exe闪退3.1 s…...

x64-linux下在vscode使用vcpkg

1.使用vscode远程连接上对应的linux ,或者直接在图形化界面上使用。 2.安装vcpkg 插件,然后打开插件设置。 注意:defalut和host的主机一定和你自己的主机一致,且必须符合vcpkg三元组格式,其中你可以选择工作台的设置&a…...

运营商二要素核验-手机号机主姓名核验接口-运营商二要素核验接口

通过电信运营商验证手机号码与姓名是否一致。广泛用于实名注册、风控审核等场景,如电商、游戏、直播、金融等需要用户实名认证的场景。支持携号转网核验。 更新周期:联通T1 电信T3 移动T3~5 均为工作日 接口地址: https://www.wapi.cn/api_de…...

C++设计模式-生产者消费者模式

运行在VS2022,x86,Debug下。 32. 生产者消费者模式 解耦生产者和消费者之间的关系,即生产者和消费者只依赖缓冲区,而不相互依赖。应用:多线程并发编程,可以解决生产者和消费者之间的同步问题。实现 生产者…...

VSTO Word.net 如何在另外的工程内添加CustomTaskPane

其他工程肯定是不能直接添加CustomTaskPane面板的,但我们可以在ThisAddIn 中先把对应的panel给新建出来再进行隐藏。步骤如下: 1.在另外工程中定义public static CustomTaskPane currMainForm;把需要隐藏的界面赋值给currMainForm; 2.在另外…...

ROS——自定义话题消息和使用方法

定义Person话题 定义Person发布者 /*** 该例程将发布/person_info话题&#xff0c;自定义消息类型&#xff1a; test_topic::Person*/#include <ros/ros.h> #include <test_topic/Person.h> //包含的头文件&#xff0c;ros相关的头文件&#xff0c;及自定义头文件…...

包装对象类型又是啥啊。。。

包装对象类型 目录 包装对象类型 目录包装对象的概念包装对象类型和字面量类型Objectobject 包装对象的概念 JavaScript 的8种类型之中&#xff0c;undefined和null其实是两个特殊值&#xff0c;object属于复合类型&#xff0c;剩下的五种属于原始类型&#xff08;primiti…...

服务编排如何选?这几款可视化服务编排引擎,开发团队赶紧收藏

最近看到几款不错的服务编排的产品&#xff0c;先给大家上图看看 扣子&#xff1a; jvs-logic&#xff1a; node-red&#xff1a; jvs-rules&#xff1a; 上述几个产品是最近看到的 几个比较有特点的服务编排的系统。 接下来我对API详细分解下&#xff0c;说明下优点与挑战 服…...

web前端语言框架:探索现代前端开发的核心架构

web前端语言框架&#xff1a;探索现代前端开发的核心架构 在快速发展的web开发领域&#xff0c;前端语言框架的选择对于项目的成功至关重要。它们不仅影响着开发效率&#xff0c;更直接关系到用户体验与网站性能。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;…...

基于flask的网站如何使用https加密通信

文章目录 内容简介网站目录示例生成SSL证书单独使用Flask使用WSGI服务器Nginx反向代理参考资料 内容简介 HTTPS 是一种至关重要的网络安全协议&#xff0c;它通过在 HTTP 协议之上添加 SSL/TLS 层来确保数据传输的安全性和完整性。这有助于防止数据在客户端和服务器之间传输时…...

软件测试面试题(应届生)

设计员工管理系统的测试用例时&#xff0c;需要考虑系统的各种功能和可能的使用场景&#xff0c;以确保系统的稳定性和准确性。以下是一些设计测试用例的基本步骤和策略&#xff1a; 一、明确测试目标 首先&#xff0c;需要明确测试的目标&#xff0c;例如确保员工信息的准确…...

使用halo的jar方法搭建博客(数据库mysql

ssh连接远程主机 ➜ ~ ssh root 146.56.249.61 第一步.在CentOS 7上安装下载OpenJDK 17的tar.gz文件 wget https://download.java.net/java/GA/jdk17.0.1/2a2082e5a09d4267845be086888add4f/12/GPL/openjdk-17.0.1_linux-x64_bin.tar.gz解压 tar xvf openjdk-17.0.1_linux-…...

Linux - 复盘一次句柄数引发的故障

文章目录 Pre&#xff08;内核、用户、进程&#xff09;句柄数设置问题 shell修复 Pre Linux - 深入理解/proc虚拟文件系统&#xff1a;从基础到高级 &#xff08;内核、用户、进程&#xff09;句柄数设置 在Linux系统中&#xff0c;进程打开的最大句柄数可以通过多种方式配置…...

2024/06/13--代码随想录算法2/17| 62.不同路径、63. 不同路径 II、343. 整数拆分 (可跳过)、96.不同的二叉搜索树 (可跳过)

62.不同路径 力扣链接 动态规划5步曲 确定dp数组&#xff08;dp table&#xff09;以及下标的含义&#xff1a; dp[i][j] &#xff1a;表示从&#xff08;0 &#xff0c;0&#xff09;出发&#xff0c;到(i, j) 有dp[i][j]条不同的路径。确定递推公式&#xff0c;dp[i][j] d…...

Android低代码开发 - 直接创建一个下拉刷新列表界面

看了我Android低代码开发 - 让IDE帮你写代码这篇文章的小伙伴&#xff0c;大概都对Dora全家桶开发框架有基本的认识了吧。本篇文章将会讲解如何使用dora-studio-plugin快捷创建一个下拉刷新列表界面。 效果演示 这样直接通过图形界面的方式就创建好了下拉刷新上拉加载空态界面…...

23.Dropout

在深度学习的训练过程中&#xff0c;过拟合是一个常见的问题。为了解决这个问题&#xff0c;研究者们提出了多种正则化技术&#xff0c;其中Dropout技术因其简单而有效的特点&#xff0c;得到了广泛的应用。本文将对Dropout技术的工作原理、主要优点、潜在缺点以及应用场景进行…...

电脑撤回的快捷键是什么?

下面给大家介绍了各种办公应用的撤回以及反向撤回快捷键介绍&#xff0c;在ps、excel中都是可以使用的。 撤回键是ctrl加什么 1、撤销的快捷键是“CtrlZ”&#xff0c;用于取消上一步操作&#xff0c;对与在电脑系统上或软件内的操作均适用。重复按下可以取消多步操作。 2、而…...

每日一题——Python实现PAT甲级1116 Come on! Let‘s C(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码点评 时间复杂度分析 空间复杂度分析 总结 我要更强 优化思路 优化…...

spring-data-mongodb版本兼容问题

spring-data-mongodb与mongodb驱动有兼容性问题&#xff0c;不匹配会报NoSuchMethod异常&#xff0c;mongodb的java驱动包在4.0之后由mongodb-java-driver更名为mongodb-driver-sync。 spring-data-mongodb包依赖中有mongodb-driver-core&#xff0c;但缺诸如MongoCollection等…...

Java的核心类库

引言 在Java编程中&#xff0c;熟练掌握常用类与对象操作是开发的基础。Java的核心类库提供了丰富的功能&#xff0c;可以帮助开发者高效地处理各种编程任务。本文将详细介绍Java字符串操作、集合框架、日期与时间处理等内容&#xff0c;并通过图表和表格进行总结与示范。 字符…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...

Canal环境搭建并实现和ES数据同步

作者&#xff1a;田超凡 日期&#xff1a;2025年6月7日 Canal安装&#xff0c;启动端口11111、8082&#xff1a; 安装canal-deployer服务端&#xff1a; https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...