当前位置: 首页 > 知识库问答 >
问题:

PyQtWebKit的Python Pyinstaller MSYS问题

华衡
2023-03-14

网络浏览器。派克

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'web_browser.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(779, 257)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName("verticalLayout")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

web_browser_main.py

from web_browser import *
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import QUrl
from PyQt5.QtWebKitWidgets import QWebView , QWebPage
import sys
class TestBrowserCode:
    def __init__(self):
        self.app = QtWidgets.QApplication(sys.argv)
        self.mainWindow = QtWidgets.QMainWindow()
        self.main_ui = Ui_MainWindow()
        self.main_ui.setupUi(self.mainWindow)
        self.mainWindow.showMaximized()
        
        self.open_google()
        
        sys.exit(self.app.exec_())
        
    def open_google(self):
        self.google_url = 'http://www.google.com'
        
        self.main_ui.chat_browser = QWebView()
        self.main_ui.chat_page = QWebPage()
        self.main_ui.chat_browser.setPage(self.main_ui.chat_page)
        self.main_ui.chat_browser.setUrl(QUrl(self.google_url))
        
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)


        self.main_ui.chat_browser.setMinimumSize(QtCore.QSize(0, 398))
        self.main_ui.chat_browser.setMaximumSize(QtCore.QSize(16777215, 398))
        
        
        self.main_ui.chat_browser.setSizePolicy(sizePolicy)
        self.main_ui.chat_browser.setStyleSheet("background-color:white;border:1px solid #dadada;")
        
        self.main_ui.verticalLayout.addWidget(self.main_ui.chat_browser)
        
        self.main_ui.chat_browser.show()

program = TestBrowserCode()
  1. 从源代码运行代码:
Χρήστος@Chris-pc MINGW64 /c/python/scripts/Papinhio player/notes
$ python web_browser_main.py

(站点显示正确)

Traceback (most recent call last):
  File "C:/Python/Scripts/Papinhio player/notes/web_browser_main.py", line 4, in
 
    from PyQt5.QtWebKitWidgets import QWebView , QWebPage
  File "", line 991, in _find_and_load
  File "", line 975, in _find_and_load_unlocked
  File "", line 657, in _load_unlocked
  File "", line 556, in module_from_spec
  File "", line 1101, in create_module
  File "", line 219, in _call_with_frames_removed
  File "", line 991, in _find_and_load
  File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'PyQt5.QtWebKit'
[17208] Failed to execute script web_browser_main

导入PyQt5时出现结果错误。QtWebKitWidgets

msys2 mingw64控制台中的所有内容。如何编译上述文件?

共有1个答案

斜和硕
2023-03-14
pyinstaller --onefile --hidden-import PyQt5.QtWebKit web_browser_main.py

上面的代码包括丢失的模块QtWebKit。我建议使用--onedir而不是--OneFile,因为我认为输出exe更稳定。(在像web\u browser\u main应用程序这样的应用程序中,我在几秒钟后出现了运行时错误)

现在工作!!!

 类似资料:
  • 这个FAQ的最新版本总是可以从Apache主站点得到,位于<http://httpd.apache.org/docs/2.2/faq/> 如果你的问题在这里没有找到答案,你也可以看看Apache 1.3 FAQ ,看你的问题是否在那里有了答案。 主题 背景 关于 Apache HTTP Server 的背景知识。 支持 我遇到问题该怎么办? 错误信息 这些错误信息是什么意思? 背景 什么是Apac

  • 我试图在fabric rocket chat上联系,但没有得到太多帮助,因此在SO上发布了它。我有以下疑问: 我们是否可以在链码内访问块高度(我知道这在客户端是可行的,但在链码内是否可能) 可以从链码中的正在进行的事务调用新事务吗? 想知道hyperledger Fabric中存储的数据的历史记录在哪里 我们可以根据链码中的transactionid进行查询吗? 在fabric链码中编写调度程序是

  • 问题内容: 我正在尝试创建一个程序,在该程序中,用户可以使用扫描仪将值输入到数组中。 但是,当程序要求学生的近亲时,它不会让用户输入任何内容而直接结束程序。 下面是我完成的代码: 我试过使用next(); 但只会使用用户输入的第一个单词,这不是我想要的。反正有解决这个问题的方法吗? 问题答案: 当您按Enter键(换行符)时,会出现问题。仅使用整数,但跳过换行符。要解决此问题,您可能需要在阅读后添

  • 我必须回到这个论坛寻求帮助,因为我不能仍然使‘承诺.所有’工作! 第一,我有这个函数,按说是回一个承诺: 其思想是上面的函数返回一个promise,其值一旦解析,就是json对象。我已经检查了json实际上是有效的。如果我用下面的行替换“return...”行,我实际上会得到一个有效的JSON: 第二,我有这个for循环,之后我希望有一系列承诺: 最终我执行以下代码: 我希望.then部分只在所有

  • null log4j2.xml将默认记录器根日志级别设置为info。但有时我需要指定debug。 在Windows PowerShell上执行上述命令行时出现错误 我尝试了-dlog4j.configurationfile=file://log4j.configurationfile=./log4j2.xml或-dlog4j.configurationfile=./log4j2.xml或-dlog

  • 比如现在有个接口,地址是/api/user/info 那么最终转发后的地址是 http://aaa.com/api/user/info 如果规则改成这样,在转发地址后加个/, 最终转发后的地址是: http://aaa.com/user/info 原因是什么呢?为什么转发地址后加/就会把/api给剃掉呢? 还有写成 /api 和 /api/ 好像效果是一样的,这两者的区别在哪呢?