python pyinstaller打包常见问题(一):无法生成exe文件/打包闪退

这篇具有很好参考价值的文章主要介绍了python pyinstaller打包常见问题(一):无法生成exe文件/打包闪退。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

小游戏程序,本地环境能正常运行

程序调用了wav文件,即音效资源文件

程序调用wav路径正确,也是采用绝对路径


问题描述:

程序制作完成后,进行了以下三步打包操作:

1、生成spec文件

在需要打包的程序的目录上,我进入终端输入以下命令进行打包:

pyinstaller -F -w snake.py

python pyinstaller打包常见问题(一):无法生成exe文件/打包闪退,android,python,pygame,windows

2、修改spec文件

2.1、打开生成的snake.spec文件

python pyinstaller打包常见问题(一):无法生成exe文件/打包闪退,android,python,pygame,windows

2.2、修改Analysis 的 pathex(程序所在目录的路径).

2.3、修改Analysis 的 datas(调用文件的路径).

a = Analysis(
    ['snake.py'],
    pathex=['C:\\Users\xxx\\PycharmProjects\\pythonProject1'],
    binaries=[],
    datas=[('C:\\Users\xxx\\PycharmProjects\\pythonProject1\\猫咪吃东西.wav')],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)

3、生成exe文件(报错)

3.1、使用打包命令:

pyinstaller snake.spec

3.2、报错提示如下:

C:\Users\xxx\PycharmProjects\pythonProject1>pyinstaller snake.spec
309 INFO: PyInstaller: 5.10.0
309 INFO: Python: 3.7.4
310 INFO: Platform: Windows-10-10.0.22621-SP0
312 INFO: UPX is not available.
313 INFO: Extending PYTHONPATH with paths
['C:\\Users\\xxx\\PycharmProjects\\pythonProject1']
pygame 2.1.2 (SDL 2.0.18, Python 3.7.4)
Hello from the pygame community. https://www.pygame.org/contribute.html
896 INFO: checking Analysis
913 INFO: checking PYZ
927 INFO: checking PKG
931 INFO: Bootloader C:\Users\xxx\AppData\Roaming\Python\Python37\site-packages\PyInstaller\bootloader\Windows-64bit-intel\runw.exe
931 INFO: checking EXE

原因分析:

打包spec文件时报错,有两种可能:

1、生成的spec文件有问题

2、修改的spec文件有问题


解决方案:

根据上述分析,首先需要进行一项测试。确认生成spec文件正常!

一、不修改spec文件(正常)

跳过第二步打包操作,查看是否能生成exe文件。

python pyinstaller打包常见问题(一):无法生成exe文件/打包闪退,android,python,pygame,windows

二、修改spec文件(解决)

既然不修改spec文件,能正常打包就说明是我修改spec操作不对!

1、查阅资料

  • scripts:命令行中命名的 python 脚本;

  • pure:脚本所需的纯 python 模块;

  • pathex:用于搜索导入的路径列表(如 using ),包括选项给出的路径。

  • binaries:脚本所需的非 Python 模块,包括名称 由选项给出;

  • datas:应用程序中包含的非二进制文件,包括给定的名称 通过选项。datas 采用元组(A,B):A,要打包的文件目录,B, 解压后该文件存放的目录(以 main.exe 解压目录为根)。

2、结论

我的问题是spec文件Analysis 的 datas少了目标路径。修改后成功生成exe,且功能正常!

修改代码如下

a = Analysis(
    ['snake.py'],
    pathex=['C:\\Users\xxx\\PycharmProjects\\pythonProject1'],
    binaries=[],
    datas=[('C:\\Users\xxx\\PycharmProjects\\pythonProject1\\猫咪吃东西.wav', '.')],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)

总结:

也许朋友使用pyinstaller报错的原因与我不同,但是朋友也可以根据以下步骤寻找答案:

1、前提

本地环境python运行正常,调用文件的路径正确(绝对路径)

2、测试

在需要打包的程序的目录上,依次输入如下打包命令:

pyinstaller -F -w xxx.py
pyinstaller xxx.spec

3、结论

如果能正常生成exe,只不过运行报错,那么正确修改spec就行
反之pyinstaller程序有误,建议重新下载正确版本

下一篇:python pyinstaller打包常见问题(二):No file找不到文件解决办法

如果还是解决不了问题的话,可以评论区联系我。

        文章来源地址https://www.toymoban.com/news/detail-815831.html

到了这里,关于python pyinstaller打包常见问题(一):无法生成exe文件/打包闪退的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FileZilla无法连接服务器的常见问题

    FileZilla是一款免费的TFP软件,具备大部分FTP的功能,界面操作简单,适合所有阶段的用户。FTP是英文File Transfer Protocol的缩写,也就是文件传输协议的意思。所以,FileZilla一般用于连接服务器,管理站点文件传输等作用。这款软件有客户端版和服务器版两个。在使用时需要在本

    2023年04月25日
    浏览(38)
  • 免杀对抗-Python-混淆算法+反序列化-打包生成器-Pyinstall

    cs 上线 1. 生成 shellcode-c 或者 python 2. 打开 pycharm 工具,创建一个 py 文件,将原生态执行代码复制进去 shellcode 执行代码: 3.将生成的shellcode放到执行代码中,运行代码,cs成功上线 MSF 上线 1.执行命令,生成shellcode 命令:msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.206.129

    2024年02月09日
    浏览(37)
  • SuperMap Hi-Fi 3D SDK for Unreal游戏引擎打包常见问题

    目录 前言 常见问题 1. UE打包报错:ERROR: No target name was specified on the command-line. 2. UE打包报错:ERROR: Expecting to find a type to be declared in a module rules named ‘XXX’ 3. UE打包报错:Error: System.ArgumentException: An item with the same key has already been added. Key: PakLoader

    2024年02月03日
    浏览(36)
  • intel驱动程序和支持助理常见问题:不识别、无法检测等问题解决方法

    起因: wifi驱动有点问题,于是想着更新一下官方的驱动,下载intel驱动程序和支持助理并安装完成后,打开成了这个样子,刷新多少次都没有用,就是不识别。 解决方法: 经过一波胡乱操作,发现以下两个步骤可以解决这个问题: 步骤一,注册并登陆账号 点击上方的图标

    2024年02月06日
    浏览(65)
  • 使用pyinstaller打包python文件遇到的问题和解决方法

    情况1 :当所使用的代码都在一个.py文件中,且该代码中没有调用其他文件和import自己写的函数时 例如: 打包下面这个检查输入的ip是否符合规范的程序ipcheck.py,程序中只Import了自带的库re 下载pyinstaller 使用Pyinstaller打包。先进入该程序所在的文件夹,在文件资源管理器的文

    2024年02月06日
    浏览(36)
  • Go常见问题(一)Visual Studio Code 无法识别 go 指令

    PS D:… go env go : 无法将“go”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 go env ~~ CategoryInfo : ObjectNotFound: (go:String) [], CommandNotFoundException FullyQualifiedErrorId : CommandNotFoundExcep

    2024年02月12日
    浏览(80)
  • Win10常见问题【Office等、微信能接受消息但是无法打开浏览器】

    方案1:重启Windows资源管理器 ctrl + shift + esc打开资源管理器 文件 - 运行新任务 打开运行窗口后,直接输入 方案2:删除注册表错误位置 按Win+R键调出运行,输入regedit后按回车键进入注册表编辑器 定位到 在{00000000-0000-0000-0000-000000000000}上单击右键,选择“删除”; 如果是64位

    2024年01月24日
    浏览(33)
  • RabbitMQ消息丢失、消息重复消费、消息顺序性无法保证、消息积压、一致性问题、系统可用性降低等这些常见问题怎么解决

    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 1. 消息丢失 问题 :在生产者发送消息到MQ、MQ内部处理、消费者接收消息的任一环节都可能导致消息丢失。 解决方案 : 生产者确认机制 :确保消息

    2024年04月25日
    浏览(27)
  • Jupyter-notebook打开后立刻闪退(工作路径问题)、无法跳转浏览器。两大常见问题,看这一篇就够。

    WIn+R打开cmd窗口输入【jupyter notebook --generate-config】,得到一个路径(jupyter的配置文件)。 补充:回车之后会自动生成一个名为jupyter_notebook_config.py的文件,并且cmd窗口中会给出文件所在的路径。(如果已经配置过note-book的相关信息,执行此命令会提示你是否覆盖原有配置,如

    2024年02月06日
    浏览(39)
  • Ftp无法连接到服务器怎么办?常见的ftp错误问题及解决办法分享

    1、无法上传网页,提示“无法连接服务器”错误; 原因: FTP客户端程序设置问题,客户上网线路问题,ftp服务器端问题。 解决方法: 使用CUTPFTP软件来上传客户的网页,在“FTP主机地址处”最好填写IP地址。 2、FTP时已经通过身份验证,但总列不出目录; 原因: 上传软件的

    2024年02月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包