PyInstaller打包的文件闪退

2023-07-29,,

问题描述:使用PyInstaller打包的pycharm写的python程序,打包好后从windows上打开一直闪退

一、双击exe文件闪退,从cmd命令行中与加载程序,可以看到具体的报错

D:\dist>dir
驱动器 D 中的卷是 新加卷
卷的序列号是 EE4F-593C D:\dist 的目录 2022/05/11 19:53 <DIR> .
2022/05/11 19:53 <DIR> ..
2022/05/11 19:53 7,545,458 guess_bumber.exe
1 个文件 7,545,458 字节
2 个目录 77,358,235,648 可用字节 D:\dist>.\guess_bumber.exe
Traceback (most recent call last):
File "guess_bumber.py", line 4, in <module>
ModuleNotFoundError: No module named 'colorama'
[18216] Failed to execute script 'guess_bumber' due to unhandled exception!

二、在pycharm中运行没有一点问题,但是打包出来双击就是闪退,根据上面cmd得到的报错反馈,是没有安装 ‘colorama’库,但是这个库已经在pycharm中安装过了。

# hzh 每天进步一点点
# 2022/5/11 18:42
#encoding=utf-8
import random
import colorama
import os
colorama.init(autoreset=True)
class bcolors:
OKRED = '\033[1;31m'
END = '\033[0m'
number = random.randint(1,100)
print(bcolors.OKRED+'不要看正确答案:{0}'.format(number)+bcolors.OKRED)
print(bcolors.OKRED+'---------------------'+bcolors.OKRED)
for i in range(1,11):
try:
mark = int(input('\033[1;31m我在心中有个1-100之间数,请你猜一猜:'))
if mark > number:
print('大了')
continue
elif mark < number:
print('小了')
continue
else:
print('恭喜你猜对了')
if i < 3:
print('猜的真快,肯定看答案了,奖励你一个屁吃')
elif i > 3:
print('真是实力发挥')
break
except:
print('输入错误,结束')
break
else:
print('输入太多次了,游戏结束!')
print(f'您一共输入了{i}次')
os.system('pause')

三、应该是Pyinstaller在打包的过程中根据自己python的环境中进行了编译活动,但是本地的python中没有安装‘colorama库’,在pycharm中安装的有。所以只有在本地安装成功上才能继续运行

C:\>pip install colorama
Collecting colorama
Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Installing collected packages: colorama
Successfully installed colorama-0.4.4

四、重新运行程序,如果不成功,对文件进行重新打包。把编译文件产生的文件全部清理一下,主要是有两个目录,一个是build和dist两个文件夹。下面可以运行了。

把之前编译的文件夹清理,重新pyinstaller打包

再次运行

PyInstaller打包的文件闪退的相关教程结束。

《PyInstaller打包的文件闪退.doc》

下载本文的Word格式文档,以方便收藏与打印。