zhiyiYo / PyQt-Fluent-Widgets

A fluent design widgets library based on C++ Qt/PyQt/PySide. Make Qt Great Again.
https://qfluentwidgets.com
GNU General Public License v3.0
5.61k stars 541 forks source link

[Bug]: pyside6打包后打开各种报错, #841

Closed itmeicn closed 6 months ago

itmeicn commented 6 months ago

What happened?

image

Operation System

win11 23h2

Python Version

64

PyQt/PySide Version

pyside6.4.2

PyQt/PySide-Fluent-Widgets Version

1.5.4

How to Reproduce?

写个简单的页面,pyinstall后也一样报错

Minimum code

main.spec

# -*- mode: python ; coding: utf-8 -*-

a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
)
excludes_binaries = [
    'Qt6Location.dll',
    'Qt6WebChannel.dll',
    'Qt6WebEngineQuick.dll',
    'Qt6WebEngineQuickDelegatesQml.dll',
    'Qt6WebSockets.dll',
    'Qt6VirtualKeyboard.dll',
    'Qt6PdfQuick.dll',
    'Qt6Pdf.dll',
    'Qt6QuickTimeline.dll',
    'Qt6DataVisualizationQml.dll',
    'Qt6DataVisualization.dll',
    'Qt6Charts.dll',
    'Qt6ChartsQml.dll',
    'Qt6WebEngineCore.dll',
    'Qt6Quick3D.dll',
    'Qt6Quick3DAssetImport.dll',
    'Qt6Quick3D.dll',
    'Qt6Quick3DAssetUtils.dll',
    'Qt6Quick3DEffects.dll',
    'Qt6Quick3DHelpers.dll',
    'Qt6Quick3DParticleEffects.dll',
    'Qt6Quick3DParticles.dll',
    'Qt6Quick3DRuntimeRender.dll',
    'Qt6Quick3D.dll',
    'Qt6Quick3DUtils.dll'
    ]

a.binaries = [x for x in a.binaries if os.path.basename(x[0]) not in excludes_binaries]
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='爱编程工具',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=False,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=['resource\\favicon.ico'],
)
coll = COLLECT(
    exe,
    a.binaries,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='爱编程工具',
)
itmeicn commented 6 months ago

现在拉取的有些是pyside/pyqt6.7.0的, from PySide6.QtWebEngineWidgets import QWebEngineView 这行也报错了

rainzee commented 6 months ago

你这个报错看起来跟组件库无关,另外如果是 6.7.0 的话与 #839 重复,关注这个 issue 进展就好。

itmeicn commented 6 months ago

我现在用的pyside6.4.2,用pyinstaller打包,提示找不到qfluentwidgets,我手动复制过去,才提示这个错误。如何用pyinstaller正确打包呢?请大神出个教程吧

zhiyiYo commented 6 months ago

bilibili 上有打包教程

itmeicn commented 6 months ago

pyinstaller -D -w --name=爱编程工具 -i resource/favicon.ico main.py -p D:\python\myselfTest.venv,增加了一个-p指定了python路径。pip install PySide6-Fluent-Widgets安装的qframelesswindow没法用from qframelesswindow.webengine import FramelessWebEngineView,又从其它地方找到的。1.5.4后能修复此问题