【发布时间】:2014-05-15 20:02:03
【问题描述】:
我在尝试使用 PyQt4 时遇到了一个奇怪的模块导入问题。我能够运行以下导入,彼此独立,不会出错:
import PyQt4
from PyQt4 import *
from PyQt4 import QtWebKit
from PyQt4.QtWebkit import *
当我尝试在 PyQt4.QtWebKit 中导入特定模块时开始出现错误,但并非所有模块都发生这种情况。这是一个例子:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/site-packages/webscraping/webkit.py", line 16, in <module>
from PyQt4.QtWebKit import QWebFrame, QWebView, QWebElement, QWebPage, QWebSettings
ImportError: cannot import name QWebElement
该错误中的每个模块都可以正常工作,除了 QWebElement。请注意,错误表示它无法导入模块,而不是模块不存在。我已尝试重新安装软件包,但运气不佳。
这是我安装的系统规格和软件包:
- CentOS Linux 2.6.32-431.5.1.el6.x86_64 GNU/Linux
- Python 2.6.6
已安装:
- sip.x86_64(版本:4.9.3,发布:1.el6)
- qt.x86_64(版本:4.6.2,发布:28.el6_5)
- PyQt4.x86_64(版本:4.6.2,发布:9.el6)
- PyQt4-devel.x86_64(版本:4.6.2,发布:9.el6)
- PyQt4-webkit.x86_64(版本:4.6.2,发布:8.el6)
- PyQt4-webkit-devel.x86_64(版本:4.6.2,发布:8.el6)
- 网页抓取(版本:1.4)
【问题讨论】:
-
您使用的是哪个版本的 PyQt?似乎 QWebElement 是在 4.6 版本中引入的
-
您的规格中缺少所有最重要的信息:Qt 版本、PyQt 版本、sip 版本。我猜
QWebElement(注意它是类的name,而不是模块,因此出现错误消息),在您使用的Qt 版本中不存在。 -
对不起,我急于把它弄出来,我忘了拍下 qt 和每个包的版本。现在应该可以正确更新了。
-
@ekhumoro 感谢您指出这一点。 QWebElement,根据qt-project.org/doc/qt-4.8/qwebelement.html,它是在 4.6 中添加的,所以它应该是我安装的包的一部分,但看起来情况并非如此。
-
@Majordeek。好的,但请看我的回答。
标签: python pyqt4 centos6 qtwebkit