Pyinstaller:找不到 PyQT5 Web 应用程序的 QtWebEngineProcess.exe

问题描述 投票:0回答:4

我正在开发一个显示 folium 地图的 Web 应用程序。 Web 应用程序有 3 个选项卡,每个选项卡都添加了一个 QtWebEngineView 小部件。

我正在尝试为我的 Web 应用程序创建一个独立的 .exe 文件。所以我使用 Pyinstaller 将我的项目转换为单个 .exe 文件。我已经不得不在我的规范文件中进行一些更改以解决以前的问题(已修复)。这是 spec 文件的样子

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

block_cipher = None


a = Analysis(['main.py'],
             pathex=['D:\\Bus_Stop_Finder'],
             binaries=[],
             datas=[('input\\stops.txt', 'input'), 
             ('input\\Suggestions.xlsx', 'input'),
             (".\\venv\\Lib\\site-packages\\branca\\*.json","branca"),
             (".\\venv\\Lib\\site-packages\\branca\\templates","templates"),
             (".\\venv\\Lib\\site-packages\\folium\\templates","templates"),
             ],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='main',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )
          
            
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               upx_exclude=[],
               name='main')

在运行

Pyinstaller mainspec
时,dist文件夹和main.exe文件被创建但是一旦我运行main.exe文件,我得到这个错误:

Could not find QtWebEngineProcess.exe

我已经尝试阅读用于部署 Qt WebEngine 应用程序的 Qt 文档并注意到

WebEngine进程为每个QWebEngineView或 WebEngineView 实例

我不确定,我必须在哪里进行修改或更正。有人可以帮我解决这个问题吗?

python pyqt5 pyinstaller qtwebengine
4个回答
4
投票

我遇到了类似的问题,终于解决了。 (Python 3.9.5 & PyQt5.15.4)

您的问题与规范文件修改无关。

问题的根源是生成文件的结构。 更准确地在

dist
目录中。

app_name.exe要查找的QtWebEngineProcess.exe,它存在于

dist>{app_name}>PyQt5>Qt>bin
路径下,但是本应用无法访问它。要创建此访问权限,必须执行以下任务:

  1. dist>{app_name}
    目录下创建文本文件并命名为qt.conf

  2. 在里面输入以下文字

    [Paths]
    Prefix = PyQt5/Qt/
    

现在 main.exe 运行没有任何问题:)


1
投票

我遇到了同样的问题,尝试了 Saam 的修复,但显然,最后一个斜线是通过钩子添加的。我在 dist/appname 中添加了一个 qt.conf 文件 目录

[Paths]
Prefix = PyQt5/Qt

1
投票
[Paths]
Prefix = PyQt5/Qt/

您必须创建一个包含上述详细信息的

qt.conf
文件,并且该文件应该与您的应用程序一起使用。 Example 1
Example 2


0
投票
[Paths]

Prefix = PyQt5/Qt/

After debug

路径是正确的,但是调试后创建的文件名是

'Qt5'
。应该改成
'Qt'

Change folder name 'Qt5' to 'Qt'

© www.soinside.com 2019 - 2024. All rights reserved.