ImportError: No module named QtWebKit

╄→гoц情女王★ 提交于 2019-11-29 19:29:33

问题


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

回答1:


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.




回答2:


apt install python-pyqt5.qtwebkit




回答3:


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.




回答4:


install the qt44/qt44-x11/qt44-devel rpms from the atrpms el5 repo.

http://atrpms.net/dist/el5/qt4/



来源:https://stackoverflow.com/questions/2922711/importerror-no-module-named-qtwebkit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!