Python打包exe,执行报player组件缺失“File "plyer\facades\notification.py", line 84, in notify”

之前的打包方式:

pyinstaller --onefile --windowed pythonfilename.py

执行exe报错:

修改打包命令:

pyinstaller --onefile --windowed  --hidden-import plyer.platforms.win.notification  pythonfilename.py 

执行新的exe,正常弹窗,错误消失,win10toast组件实现类似功能,打包也有这个问题,类似解法。

 

命令的部分参数解释:

--onefile :打包成一个单独的可执行文件。如果不加这个参数,PyInstaller 默认会打包成一个文件夹,里面包含许多文件和依赖。使用 --onefile 可以避免这个问题,直接打包成一个独立的 exe 文件。
--windowed :使用窗口模式运行。默认情况下,PyInstaller 打包出来的 exe 文件会以控制台模式(没有窗口)运行。使用 --windowed 参数可以让打包后的 exe 文件以窗口模式打开,展示 GUI。
所以,如果你的 Python 程序使用了 GUI 库(如 Tkinter、PyQt 等),调用系统 API 或依赖第三方库,推荐使用这两个参数打包,可以获得更好的用户体验。
用法示例:
pyinstaller yourprogram.py --onefile --windowed

 

--onefile :打包成一个单独的可执行文件。如果不加这个参数,PyInstaller 默认会打包成一个文件夹,里面包含许多文件和依赖。使用 --onefile 可以避免这个问题,直接打包成一个独立的 exe 文件。

--windowed :使用窗口模式运行。默认情况下,PyInstaller 打包出来的 exe 文件会以控制台模式(没有窗口)运行。使用 --windowed 参数可以让打包后的 exe 文件以窗口模式打开,展示 GUI

所以,如果你的 Python 程序使用了 GUI (TkinterPyQt ),调用系统 API 或依赖第三方库,推荐使用这两个参数打包,可以获得更好的用户体验。

用法示例:

pyinstaller yourprogram.py --onefile --windowed

posted @ 2023-05-11 09:50  ~清风煮酒~  阅读(166)  评论(0编辑  收藏  举报