• 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打包

     再次运行

     

  • 相关阅读:
    2015年5月1日 转载--各种变量在内存中的分布
    2015年4月30日 计算两个日期天数,写的代码
    2015年4月29日 dayofweek
    2015年4月28日
    2015年4月28日----高大上的数组,进制准换,最多是35进制
    2015年4月27日---C语言:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
    2015年4月27日
    《C++ Primer》学习笔记:迭代器介绍
    《C++ Primer》学习笔记:3.3.3其他vector操作
    《C++ Primer》学习笔记:向vector对象添加元素蕴含的编程假定
  • 原文地址:https://www.cnblogs.com/houzhiheng/p/16259628.html
Copyright © 2020-2023  润新知