ImportError: No module named QtWebKit
I am on centos5. I installed python26 source with a make altinstall. Then I did a:
yum install qt4
yum install qt4-devel
yum install qt4-doc
From riverbankcomputing.co.uk I downloaded the source for sip 4.10.2, compiled and installed fine. Then from the same site I downloaded and compiled from source PyQt-x11-4.7.3
Both installs were using the python26 version (/usr/local/bin/python2.6). So configure.py, make, and make install worked with no errors. Finally, I tried to run this script, but got the error in the subject of this post:
import sys
import signal
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import QWebPage
def onLoadFinished(result):
if not result:
print "Request failed"
sys.exit(1)
#screen = QtGui.QDesktopWidget().screenGeometry()
size = webpage.mainFrame().contentsSize()
# Set the size of the (virtual) browser window
webpage.setViewportSize(webpage.mainFrame().contentsSize())
# Paint this frame into an image
image = QImage(webpage.viewportSize(), QImage.Format_ARGB32)
painter = QPainter(image)
webpage.mainFrame().render(painter)
painter.end()
image.save("output2.png")
sys.exit(0)
app = QApplication(sys.argv)
signal.signal(signal.SIGINT, signal.SIG_DFL)
webpage = QWebPage()
webpage.connect(webpage, SIGNAL("loadFinished(bool)"), onLoadFinished)
webpage.mainFrame().load(QUrl("http://www.google.com"))
sys.exit(app.exec_())
Even in the beginning of the configure for pyqt4, I saw it say QtWebKit should be installed, but apparently it's not? What's going on?
I just did a find, and it looks like it wasn't installed. What are my options?
[root@localhost ~]# find / -name '*QtWebKit*'
/开发者_开发技巧root/PyQt-x11-gpl-4.7.3/sip/QtWebKit
/root/PyQt-x11-gpl-4.7.3/sip/QtWebKit/QtWebKitmod.sip
/root/PyQt-x11-gpl-4.7.3/cfgtest_QtWebKit.cpp
apt install python-pyqt5.qtwebkit
Double check to make sure that the Qt installation on your system has the Webkit library built.
Also, check to make sure that the QtWebKit.so exists in your python2.6/site-packages/PyQt4 directory.
install the python module PySide
, for example with:
pip install PySide
adn then change your imports from:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import QWebPage
to:
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import QWebPage
Alternatively you could use PySide just a s a fall back, so you can keep your code compatible with older systems too:
try:
# NOTE We need to try importing QtWebKit first,
# because it is the most likely one to not be available,
# and all used QT classes need to come from the same module,
# to be compatible with each other.
from PyQt4.QtWebKit import QWebPage
from PyQt4.QtCore import *
from PyQt4.QtGui import *
except ImportError:
try:
from PySide.QtGui import *
from PySide.QtWebKit import QWebPage
except ImportError:
raise Exception("We require PyQt4 (with QtWebKit) or PySide")
NOTE In the long run you should change to QT5 though, as the above are basically just workarounds.
install the qt44/qt44-x11/qt44-devel rpms from the atrpms el5 repo.
http://atrpms.net/dist/el5/qt4/
In my case, I got this error message when trying to install Electrum on Ubuntu Bionic 18.04. The problem was that the default python version was too old, since the minimum requirement at the time was python 3.8, and thus the commands above installed the wrong (python) version of PyQT5.
The solution was to install
sudo apt-get install -y python3.8 python3.8-dev
After which you can configure default python version by running:
sudo update-alternatives --config python
and maybe
sudo update-alternatives --config python3
After which also the
sudo apt-get install -y python-pyqt5.qtwebkit
worked better. You might also want to try:
pip install python3-pqt5
精彩评论