【问题标题】:Python cannot import specific PyQt4 QtWebKit modulesPython 无法导入特定的 PyQt4 QtWebKit 模块
【发布时间】: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


【解决方案1】:

PyQt 版本不一定与 Qt 版本保持同步。 PyQt-4.7 是第一个完全支持 Qt-4.6 的版本。

我还有一个旧版本的 PyQt-4.7,我可以确认问题中的 import 语句不会产生错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2011-04-29
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多