pyinstaller打包exe运行闪退

news/2024/5/19 21:30:16 标签: python, pyinstaller

这里写自定义目录标题

  • 前言
  • 问题描述
  • 解决过程

前言

闪退原因可能有很多,这里记录下我遇到的问题,简单来说是dll调用错误导致的闪退,因为我的python用的是32位的,但是pyinstaller却是64位的,属于用conda的时候没注意。

问题描述

python2.7 32位开发来脚本,运行没有问题,就想打包成exe。

环境是用conda创建的虚拟环境,激活后conda install pyinstaller安装的pyinstaller,然后运行pyinstaller -F xx.py进行打包,中间其实是有告警的,没管,直接运行了生成的exe执行文件,结果闪退了。

解决过程

在exe运行闪退后,开始考虑的是程序运行结束了,还特地在程序最后加来死循环来验证,结果不是正常结束的,应该是程序自身或者打包有问题。

想起来打包的时候有告警"WARNING: lib not found: pywintypes27.dll dependency of xx",就搜索了一下pywintypes27.dll的路径,通过-p参数在打包的时候包含了路径,告警消失,但是闪退的问题没有解决,说明不是这里导致的。

因为运行窗口一闪而过,错误信息抓不到,后来偶然在cmd中.\xx.exe运行了程序,发现报错了,显示了报错信息"ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。"如下:
在这里插入图片描述

上网搜了一通也没找到解决办法,突然想起来我这是32位的python,conda是64位的,当时装python的时候还特地设置成了32BIT,而安装pyinstaller的时候应该是64位的,因为装完python我就把环境还原回64位了的,于是就将pyinstaller卸载了,将环境切换到32位之后重新安装了pyinstaller,再次打包,前面说的告警也没了,最终exe的闪退问题解决。


http://www.niftyadmin.cn/n/5003467.html

相关文章

[第一章]1.1 样本空间与随机事件

样本空间与随机事件 今日听课状态:心不在焉,但是没关系,如我开头所说,只要习题会做就行。 今天的这部分内容带有大量的高中的集合论的知识。因此从道理上来说,这门课的学习难度并不会很大。但是这也是相对的,如果不学当…

Mysql判断某个数据库中是否包含某个表,与pymysql工具函数

查看某个数据库中的全部表: SELECT table_name FROM information_schema.tables WHERE table_schema 数据库名因此查看某个库中的某个表可以使用: SELECT table_name FROM information_schema.tables WHERE table_schema 数据库名 AND table_name 表…

Android泛型详解

参考文献:https://pingfangx.github.io/java-tutorials/java/generics/types.html 1,什么是泛型? Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了 编译时类型安全检测机制, 该机制允许程序员在编译时检测到…

波奇学C++:模板进阶

typename和class的区别 typename和class都可以声明模板参数 template <class T> template <typename T> typename作为前缀来提示编译器模板还是对像&#xff0c;如 template<class Container> void Print(const Container& v) {typename Container::…

【Python】Python sort和sorted函数

一&#xff0c;sorted函数的定义 sorted函数主要用来对序列(列表、元组、字典、集合、字符串)进行排序。 函数的基本语法格式如下&#xff1a; list sorted(iterable, keyNone, reverseFalse) iterable&#xff1a;iterable 表示指定的序列 key&#xff1a;key 参数可以自…

Java复习-20-接口(2)- 工厂设计模式

工厂设计模式&#xff08;Factory&#xff09; 观察如下例子&#xff1a; 食物接口&#xff1a;所有食物都应该能够食用&#xff0c;但食用方式不同&#xff0c;因此包含抽象方法 eat() 面包子类&#xff1a;实现食物接口&#xff0c;实现接口中的 eat() 方法 —— “吃面包”…

ps圆角矩形工具怎么改圆角?

我们使用ps不仅可以对图像进行后期编辑&#xff0c;也可以对图形进行加工使用&#xff0c;图形是组成图像的基础&#xff0c;在ps里许多可以绘制图形的工具选项&#xff0c;我们今天就教大家使用ps圆角矩形工具怎么改圆角&#xff1f; 1、打开PS&#xff0c;创建一个新的图层&…

《Linux 系统命令及Shell脚本实践指南》

Linux 系统命令及Shell脚本实践指南 《Linux 系统命令及Shell脚本实践指南》该书从结构上分为三部分:第一部分1.1Linux的历史发展1.2用户管理1.3任务管理单一时刻执行一次任务使用at周期性任务使用&#xff1a;cron表达式&#xff0c;命令crontab 1.4文件管理1.4.1 Linux shell…