我正在开发一个显示 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 3.9.5 & PyQt5.15.4)
您的问题与规范文件修改无关。
问题的根源是生成文件的结构。 更准确地在
dist
目录中。
app_name.exe要查找的QtWebEngineProcess.exe,它存在于
dist>{app_name}>PyQt5>Qt>bin
路径下,但是本应用无法访问它。要创建此访问权限,必须执行以下任务:
在
dist>{app_name}
目录下创建文本文件并命名为qt.conf
在里面输入以下文字
[Paths]
Prefix = PyQt5/Qt/
现在 main.exe 运行没有任何问题:)
我遇到了同样的问题,尝试了 Saam 的修复,但显然,最后一个斜线是通过钩子添加的。我在 dist/appname 中添加了一个 qt.conf 文件 目录
[Paths]
Prefix = PyQt5/Qt