PyInstaller打包的文件闪退
问题描述:使用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打包
再次运行