使用 --onefile 和 --noconsole 使用 PyInstaller 编译的 PyQt5 应用程序,但 exe 无法启动

PyQt5 app compiled with PyInstaller using --onefile and --noconsole, but exe fails to launch

我使用 Qt Designer 和 PyQt5 制作了一个简单的应用程序,它对 .txt 文件进行了一些简单的修改并保存了它。我通过以下命令使用 PyInstaller 成功编译了我的程序:

pyinstaller --distpath DESTINATION_PATH --onefile --noconsole myscript.py

可执行文件已创建,但当我尝试 运行 它时,我收到一条错误消息,指出 应用程序无法启动,因为它的并排配置不正确。 如果我不使用 --noconsole,可执行文件 运行 没问题,但这不是我打算 运行 的方式。 我是 PyQt5 和 PyInstaller 的新手,我在某处读到我的程序在使用 --noconsole 时不应包含“子进程”,但我不完全确定那是什么意思。 如果有任何相关性,我的防病毒软件会在使用 --onefile --noconsole 编译时删除 .exe,但在仅使用 --onefile 时不会。但是,这个问题很快就通过创建异常解决了。

这是我使用的导入:

import sys, re, os
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QFileDialog, QApplication, QMessageBox
from pathlib import Path
import pyperclip as pc

ThePyGuy 上面提供的答案已经解决了这个问题。在 spec 文件中添加 hiddenimports=['pyperclip'] 足以防止错误发生,并且程序 运行 在我测试的范围内很好。