V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
behindeye
V2EX  ›  Python

pyqt5 打包的 exe,无法在 win11 使用

  •  
  •   behindeye · 32 天前 · 2339 次点击
    这是一个创建于 32 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前有用 pyqt5 写一个程序,一直以来都运行的好好的,但最近,有部分用户反馈,自己的电脑突然无法打开程序了,点击 exe ,无反应,了解到他们都是最近系统有升级,才导致的。

    然后我联系了几个用户,远程他们的电脑,尝试定位问题所在,但是我无论加日志、加终端显示、加 debug 模式,还是一闪而过,日志打开能知道的事执行 window 的 show 方法就失败了,也没崩溃,终端也没错误日志,程序没有反应。一直无法定位到具体的原因,折腾了快一个月了。

    看看有没有大佬可以指教一下。怎么解决这个问题

    第 1 条附言  ·  31 天前
    各位建言献策的大佬们,找到问题了,不能用中文命名 exe !!!,这个真的谁能想到,如我说的,win7 、win10 、win11 都行,最近 win11 的某个更新,中文命名的 exe 就启动不了了,今天突发说改成英文的试试,就解决了。wc !!!
    第 2 条附言  ·  31 天前
    日志名称: Application
    来源: Windows Error Reporting
    日期: 2024/4/18 22:09:23
    事件 ID: 1001
    任务类别: 无
    级别: 信息
    关键字: 经典
    用户: 暂缺
    计算机: CHINAMI-5JVNMC7
    描述:
    故障存储段 1852113905678071080 ,类型 5
    事件名称: BEX64
    响应: 不可用
    Cab ID: 0

    问题签名:
    P1: 图片翻译-v0.2.6.exe
    P2: 0.0.0.0
    P3: 66212849
    P4: ucrtbase.dll
    P5: 10.0.19041.3636
    P6: 81cf5d89
    P7: 000000000007286e
    P8: c0000409
    P9: 0000000000000007
    P10:

    附加文件:
    \\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER59D2.tmp.WERInternalMetadata.xml

    可在此处获取这些文件:
    \\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_图片翻译-v0.2.6._78215d87b8defb94253bcbdcfaa6cb99bc5b_8d0500d2_7e82dd88-1c37-4aa9-96fa-a6a36c9e8e30

    分析符号:
    重新检查解决方案: 0
    报告 ID: dca64242-88a5-4ffc-a2e3-60f47a887a6e
    报告状态: 268435456
    哈希存储段: c98764e9979afd56e9b407c8c780b528
    Cab GUID: 0
    事件 Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
    <Provider Name="Windows Error Reporting" />
    <EventID Qualifiers="0">1001</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2024-04-18T14:09:23.2982796Z" />
    <EventRecordID>18048</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>CHINAMI-5JVNMC7</Computer>
    <Security />
    </System>
    <EventData>
    <Data>1852113905678071080</Data>
    <Data>5</Data>
    <Data>BEX64</Data>
    <Data>不可用</Data>
    <Data>0</Data>
    <Data>图片翻译-v0.2.6.exe</Data>
    <Data>0.0.0.0</Data>
    <Data>66212849</Data>
    <Data>ucrtbase.dll</Data>
    <Data>10.0.19041.3636</Data>
    <Data>81cf5d89</Data>
    <Data>000000000007286e</Data>
    <Data>c0000409</Data>
    <Data>0000000000000007</Data>
    <Data>
    </Data>
    <Data>
    \\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER59D2.tmp.WERInternalMetadata.xml</Data>
    <Data>
    28 条回复    2024-05-08 17:51:26 +08:00
    Cooky
        1
    Cooky  
       32 天前
    程序解包运行有问题?
    behindeye
        2
    behindeye  
    OP
       32 天前 via Android
    @Cooky 不清楚呢
    xljiulong2031
        3
    xljiulong2031  
       32 天前
    找台电脑升下级哈哈
    Mianmiss
        4
    Mianmiss  
       32 天前
    用他们的电脑,你直接运行 py 脚本试试?
    behindeye
        5
    behindeye  
    OP
       32 天前 via Android
    @Mianmiss 用户的电脑,也不好安装环境啥的
    uijk
        6
    uijk  
       32 天前
    要把 python 的核心和其他依赖文件(那一堆 py 文件),一起考过去就可以。注意目录,目录不对就设置一下,就可以了。
    behindeye
        7
    behindeye  
    OP
       32 天前 via Android
    @uijk 是这样的,用的 pyinstaller 打包,相关的 dll 以及资源都打进去了,背景是在 win7 以及 win10 ,还有早起 win11 都是正常运行的,只是最近用户电脑更新了 win11 的某个更新,就无法运行了
    ma836323493
        8
    ma836323493  
       32 天前
    找个 win11 试下就行了
    AlexShui
        9
    AlexShui  
       32 天前
    用终端启动程序,程序报错闪退后终端窗口还在,应该可以看到信息的
    Motorola3
        10
    Motorola3  
       32 天前
    想请教一下 早上再用 pyqt6 然后用 Pyinstaller 打包 我的 pyqt 的代码中 icon 用了图片 然后其他代码中有大量相对路径的图片 这块一般是怎么处理的呀 是先读取图片转为 base64 导入吗还是打包的时候添加单独参数 我给 datas 那个文件夹中已经包含了我的 图片整个文件夹 似乎还是无法读取到
    behindeye
        11
    behindeye  
    OP
       32 天前 via Android
    @ma836323493 试过了,大部分可以,少部分不行,目前反馈有问题的大概有十几二十个人
    behindeye
        12
    behindeye  
    OP
       32 天前 via Android
    @AlexShui 终端停留了,但是没有错误信息……
    behindeye
        13
    behindeye  
    OP
       32 天前 via Android
    @Motorola3 这个我有经验,可以加我 vx:SmileV4
    thinkershare
        15
    thinkershare  
       32 天前
    @behindeye Windows 上,任何奔溃的程序都有会转储和奔溃日志。使用事件查看器,看看操作系统记录的奔溃错误。
    676529483
        16
    676529483  
       32 天前
    @Motorola3 打包时候--add-data ,代码里面用 bundle_dir = getattr(sys, '_MEIPASS', path.abspath(os.path.dirname(__file__)))找到路径
    behindeye
        17
    behindeye  
    OP
       32 天前 via Android
    @thinkershare 大佬能分享一下教程么
    thinkershare
        18
    thinkershare  
       32 天前
    Win+R,打开运行,输入:eventvwr.msc ,回车,你就会打开 Windows 自带的程序日志查看器。除非你的程序是正常奔溃的,否则日志查看器下的:Windows 日志 > 应用程序下面肯定会有 crash 的原因。
    AlexShui
        19
    AlexShui  
       32 天前
    @behindeye #12 那这样就该去看看代码里面 try except 是怎么处理的,是不是有哪里直接 try except pass 了
    icepie
        20
    icepie  
       32 天前
    用 nuitka 试试看
    makejohn2015
        21
    makejohn2015  
       32 天前
    用 virtualenv 重新弄一个环境,然后连环境一起打包到客户电脑,运行一下看看
    ktyang
        22
    ktyang  
       32 天前
    我用 nuitka 打包 qt 在本机都打不开。。。好在我这边界面功能简单,转头直接用 tk 重新撸了个,就没再管过了。
    d20240326
        23
    d20240326  
       32 天前
    最好的办法是不用 python ,因为 python 不知道 Windows 上还有一个 python.
    但 python 以外的编程语言/解释器知道。

    例如
    不要 python.exe 而是 myPython3.exe 之类的命名
    win10 和 11 有 python.exe

    实际上用 python 写的跨平台项目很多,建议参考他们是如何实现的。
    cnbatch
        24
    cnbatch  
       31 天前
    中文 exe 不能运行?
    我在自己的 Win11 机器把随便下载的几个 exe 改成了中文,然后运行,可以用啊
    Windows Update 没关闭,已经自动安装最新的各种 patch
    behindeye
        25
    behindeye  
    OP
       31 天前 via Android
    @cnbatch 是的,所以我一直没往这个方面去想,但现象确实是
    llsquaer
        26
    llsquaer  
       31 天前
    你这么一说,发现之前打包的 pyqt 就有报告说 win11 无法运行...估计就是我是中文 py,直接打包的中文 exe
    vialon17
        27
    vialon17  
       12 天前
    的确,遇到过问题,打包的 qt exe 不能用中文,否则报错;
    安装了 400+台客户机,遇到差不多 10 多台有直接停止运行的问题,遇到这种都直接扔了,暂时没考虑,嘻嘻。
    vialon17
        28
    vialon17  
       12 天前
    @Motorola3 直接建个 icon 文件夹,在项目文件夹下,
    打完包,把这个文件夹丢里面就行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2523 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:04 · PVG 23:04 · LAX 08:04 · JFK 11:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.