Qgis2threejs icon indicating copy to clipboard operation
Qgis2threejs copied to clipboard

ModuleNotFoundError: No module named 'PyQt5.QtWebKit'

Open brandy125 opened this issue 3 years ago • 3 comments

On Linux Suse_Tumbleweed 5.12.2-1-default #1 SMP Fri May 7 18:05:46 UTC 2021 (6fcec30) x86_64 x86_64 x86_64 GNU/Linux With Python version: 3.8.10 (default, May 05 2021, 15:36:36) [GCC] QGIS version: 3.18.2-Zürich Zürich, exported

I get the following error message when trying to enable Qgis2threejs.

How can I solve this?

brandy125 avatar May 27 '21 20:05 brandy125

Does this still happen after updating the plugin?

kannes avatar Sep 25 '21 19:09 kannes

…actually it happens during the “reinstall” process:

Missing dependencies related to PyQt5 and QtWebKit. Please install "python3-pyqt5.qtwebkit" package (Debian/Ubuntu) before using this plugin.

On 25. Sep 2021, at 16:12, Hannes @.***> wrote:

Does this still happen after updating the plugin?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/minorua/Qgis2threejs/issues/248#issuecomment-927170002, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOC5K6HDNC6UB34HANSJQ7LUDYNILANCNFSM45VA3KDQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

brandy125 avatar Sep 25 '21 19:09 brandy125

Yes, still happens even after updating the plugin, just verified.

On 25. Sep 2021, at 16:12, Hannes @.***> wrote:

Does this still happen after updating the plugin?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/minorua/Qgis2threejs/issues/248#issuecomment-927170002, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOC5K6HDNC6UB34HANSJQ7LUDYNILANCNFSM45VA3KDQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

brandy125 avatar Sep 25 '21 19:09 brandy125

Any workaround? Progress?

AKRFranko avatar Jan 17 '23 15:01 AKRFranko

The plugin works perfectly fine if your Python environment has QtWebKit.

kannes avatar Jan 17 '23 17:01 kannes

And if not? I mean, if I install python 3.8 there is no QtWebKit.

brandy125 avatar Jan 18 '23 14:01 brandy125

Then it does not. ;) Sorry for the snarkiness. My reply was for @AKRFranko's unfriendly inquiry.

One could compile PyQt5 with QtWebKit support like e.g. this Archlinux AUR package https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=python-pyqt5-webkit but I fully understand that this is not an option for most users.

@minorua has marked this issue with the label https://github.com/minorua/Qgis2threejs/labels/want%20Qt%20WebEngine so you can be sure that the main developer knows about this issue and asking won't make a difference. I am sure they would appreciate code contributions though!

kannes avatar Jan 18 '23 20:01 kannes

Ok, thanks. Unfortunately I have no skills to contribute, I am just a user of this fantastic plugin.

brandy125 avatar Jan 18 '23 20:01 brandy125

Hi, I just wanted to know if there are any news about porting from Webkit to Webengine. I love this plugin so much but I have to use a special qgis version from a flatpak install to use it because my Suse Tumbleweed running aarch64 Architecture does not allow installing PyQt5 with QtWebKit support. Do you think this porting will still happen?

brandy125 avatar Aug 12 '23 20:08 brandy125

Hi everybody, is there any chance that anybody with some python knowledge can change the source code to use QtWebEngine instead of QtWebKit? As far as I understand the QtWebkit is deprecated and not used anymore in modern linux. I tried to change the code by myself but I got stuck after some lines of changes in the code.

Please, help.

brandy125 avatar Sep 20 '23 20:09 brandy125

Well, I got it almost working. The window opens and shows a blank screen. Now there are lot's of error messages like:

    self.mainFrame().evaluateJavaScript("loadJSONObject(pyData())")
    ^^^^^^^^^^^^^^
AttributeError: 'Q3DWebPage' object has no attribute 'mainFrame'

Can anybody help tp fix this?

brandy125 avatar Sep 21 '23 13:09 brandy125

I will start replacing Qt WebKit QWebView with Qt WebEngine QWebEngineView once QWebEngineView becomes available within QGIS. I still get the following error.

>>> from PyQt5.QtWebEngineWidgets import *
ImportError: QtWebEngineWidgets must be imported or Qt.AA_ShareOpenGLContexts must be set before a QCoreApplication instance is created

QGIS 3.32.0, openSUSE Tumbleweed on WSL

minorua avatar Sep 22 '23 08:09 minorua

Hi @minorua, thanks for having a look to it.

Actually I think the error above does not come from QWebEngineView not being available withing QGIS as it actually is already:

# Python Console
# Use iface to access QGIS API interface or type '?' for more info
# Security warning: typing commands from an untrusted source can harm your computer
>>> from PyQt5.QtWebEngineWidgets import *
>>> from PyQt5.QtWebEngineWidgets import QWebEngineView

I think the error message comes because if using QWebEngine there must be changed something else in the very beginning of the program. Could you please try it again?

brandy125 avatar Sep 22 '23 12:09 brandy125

@brandy125 are you sure that you don't get a red error bar (or stacktrace on stderr) when you do that? If not, what's your QGIS setup?

https://github.com/qgis/QGIS/issues/26048#issuecomment-569353410

There's no way this can be solved in qgis -- qgis has to create an application before python support is setup. There's no way around that. The fix for this would be to work with upstream and get a workaround implemented which would avoid the need to initialise before the application construction.

https://github.com/qgis/QGIS/issues/49512#issuecomment-1244676849

This is expected -- it's currently completely impossible to use both QtWebEngine AND Qt 3D in the one application, and unfortunately QGIS 3D is based on Qt 3D. So there's no way to use webengine at ALL in QGIS right now.

kannes avatar Sep 25 '23 20:09 kannes

@brandy125 Thanks : )

I have successfully displayed a web page exported using this plugin in a web view of QWebEngineView within QGIS.

OS: openSUSE Tumbleweed on WSL QGIS Code: jbp35's qgs3dwindow branch rebased on current master

In Python Console:

import os
from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView

os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--ignore-gpu-blocklist --enable-gpu-rasterization"

url = "https://qgis2threejs-examples-24.netlify.app/mt_fuji.html"

view = QWebEngineView()
view.load(QUrl(url))
view.show()

minorua avatar Sep 26 '23 02:09 minorua

Hi @minorua thank you very much for working again on your plugin.

I saw your new version and installed it on my system

Linux localhost.localdomain 6.2.9-1-default #1 SMP PREEMPT_DYNAMIC Thu Mar 30 11:30:50 UTC 2023 (7a187a3) aarch64 aarch64 aarch64 GNU/Linux
NAME="openSUSE Tumbleweed"
# VERSION="20231003"

but it does not work for me. If I let

# 3D view
PREFER_WEBKIT = True

in the file conf.py then qgis complains with

ImportError: libQt5WebKitWidgets.so.5: cannot open shared object file: No such file or directory

If I set

# 3D view
PREFER_WEBKIT = False

Then I get the following error message:

ImportError: QtWebEngineWidgets must be imported or Qt.AA_ShareOpenGLContexts must be set before a QCoreApplication instance is created

Is this new version meant to work already on my system or is it still "in preparation"? I am asking, because you closed this issue and for me it is not working yet.

But anyway, thank you very much already for your work.

brandy125 avatar Oct 05 '23 20:10 brandy125

@brandy125 I needed to build QGIS myself on Tumbleweed to get QWebEngineView to work in QGIS. It didn't work on Ubuntu 22.04. Thanks.

OS: openSUSE Tumbleweed on WSL QGIS Code: jbp35's qgs3dwindow branch rebased on current master

EDIT: Web engine view works in self-build QGIS on Ubuntu 23.04 on WSL.

minorua avatar Oct 05 '23 23:10 minorua