Сбой Python QWebEnginePage (PyQt5)
Привет всем, я просто пытаюсь использовать pyqt5 (я использовал python-3.5) для рендеринга HTML. Я реализовал этот класс (Page) для выполнения следующих задач:
#This is the Main.py.
import sys
from PyQt5.QtWebEngineWidgets import QWebEnginePage
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QUrl
import UrlDl
class Page(QWebEnginePage):
def __init__(self, html, url):
self.app = QApplication(sys.argv)
QWebEnginePage.__init__(self)
self.html = None
self.loadFinished.connect(self._on_load_finished)
self.setHtml(html, QUrl(url))
self.app.exec_()
def _on_load_finished(self):
self.html = self.toHtml(self.Callable)
print('Load finished')
def Callable(self, html_str):
self.html = html_str
#print("quit called")
self.app.quit()
def main():
url = ''#Base_Url
with open('C:\\HTML_FILE_PATH', "r") as text:
url_html = text.read()
for i in range(10):
page = Page(url_html, url)
print(page.html)
if __name__ == '__main__': main()
Я запускаю этот класс с HTML (уже загружен) и базовый URL следующим образом:
page = Page(html, base_url)
этот код работает несколько раз (в цикле for). Но после нескольких пробежек я получил исключения:
[15952:7692:0115/010330.922: ОШИБКА:cache_util_win.cc(20)] Невозможно переместить кэш: 5 [15952:7692:0115/010330.922: ОШИБКА:cache_util.cc(134)] Невозможно переместить папку кэша C:\Users...\QtWebEngine\Default\GPUCache в C:\Users....\QtWebEngine\Default\old_GPUCache_000 [15952:7692:0115/010330.922: ОШИБКА:cache_creator.cc(134)] Невозможно создать кэш [15952:7692:0115/010330.922: ОШИБКА:shader_disk_cache.cc(570)] Ошибка создания кэша шейдера: -2 [15952:7692:0115/010331.027: ОШИБКА:cache_util_win.cc(20)] Невозможно переместить кэш: 5 [15952:7692:0115/010331.027: ОШИБКА:cache_util.cc(134)] Невозможно переместить папку кэша C:\Users...\QtWebEngine\Default\Cache в C:\Users...\QtWebEngine\Default\old_Cache_000 [15952:7692:0115/010331.027: ОШИБКА:cache_creator.cc(134)] Невозможно создать кеш
Когда это терпит крах, это также завершается со странным кодом выхода (не ноль). Это выглядит так:
Процесс завершен с кодом выхода -1073741819 (0xC0000005)
Это выход, потому что линия self.app.quit()
(в функции "Callable" в моем классе).
Как это решить??