CentOS 7 Python ImportError:无法导入名称QtWebkit,即使它在我的PyQt4站点包目录中

Posted

技术标签:

【中文标题】CentOS 7 Python ImportError:无法导入名称QtWebkit,即使它在我的PyQt4站点包目录中【英文标题】:CentOS 7 Python ImportError: cannot import name QtWebkit even though it's in my PyQt4 site-packages directory 【发布时间】:2015-09-21 18:02:26 【问题描述】:

我正在尝试在 CentOS 7 中安装 Ghost.py。我已经安装了以下软件包,但似乎我遗漏了一些东西,或者某处没有可用的路径。我在这里真的很挣扎,不知道我错过了什么。

sudo yum install cmake qconf qt-devel qt4-devel python-devel PyQt4 PyQt4-devel PyQt4-web* xorg-x11-server-ver-Xvfb python-xvfbwrapper
sudo ln -s /usr/bin/qmake-qt4 /usr/bin/qmake

然后安装 PySide

sudo pip install PySide
sudo pip install Ghost.py

然后在我的解释器中,当我去导入它时,我得到了这个:

Python 2.7.5 (default, Jun 24 2015, 00:41:19) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from ghost import Ghost
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/ghost/__init__.py", line 2, in <module>
    from .ghost import (
  File "/usr/lib/python2.7/site-packages/ghost/ghost.py", line 17, in <module>
    from .bindings import (
  File "/usr/lib/python2.7/site-packages/ghost/bindings.py", line 74, in <module>
    QtWebKit = _import('QtWebKit')
  File "/usr/lib/python2.7/site-packages/ghost/bindings.py", line 41, in _import
    module = __import__(name)
ImportError: No module named QtWebKit

我不明白,因为它在我的/usr/lib64/python2.7/site-packages/PyQt4 目录中:

[me@localhost PyQt4]$ ls -lah
total 16M
drwxr-xr-x.  3 root root 4.0K Sep 21 13:56 .
drwxr-xr-x. 43 root root 8.0K Sep 21 13:56 ..
-rw-r--r--.  1 root root 1.1K Jun  9  2014 __init__.py
-rw-r--r--.  2 root root  139 Jun  9  2014 __init__.pyc
-rw-r--r--.  2 root root  139 Jun  9  2014 __init__.pyo
-rwxr-xr-x.  1 root root 406K Jun  9  2014 phonon.so
-rw-r--r--.  1 root root  14K Jun  9  2014 pyqtconfig.py
-rw-r--r--.  2 root root  17K Jun  9  2014 pyqtconfig.pyc
-rw-r--r--.  2 root root  17K Jun  9  2014 pyqtconfig.pyo
-rwxr-xr-x.  1 root root 2.7M Jun  9  2014 QtCore.so
-rwxr-xr-x.  1 root root 236K Jun  9  2014 QtDBus.so
-rwxr-xr-x.  1 root root 267K Jun  9  2014 QtDeclarative.so
-rwxr-xr-x.  1 root root 354K Jun  9  2014 QtDesigner.so
-rwxr-xr-x.  1 root root 8.3M Jun  9  2014 QtGui.so
-rwxr-xr-x.  1 root root 125K Jun  9  2014 QtHelp.so
-rwxr-xr-x.  1 root root 148K Jun  9  2014 QtMultimedia.so
-rwxr-xr-x.  1 root root 771K Jun  9  2014 QtNetwork.so
-rwxr-xr-x.  1 root root 302K Jun  9  2014 QtOpenGL.so
-rwxr-xr-x.  1 root root 218K Jun  9  2014 QtScript.so
-rwxr-xr-x.  1 root root  27K Jun  9  2014 QtScriptTools.so
-rwxr-xr-x.  1 root root 6.8K Jun  9  2014 Qt.so
-rwxr-xr-x.  1 root root 347K Jun  9  2014 QtSql.so
-rwxr-xr-x.  1 root root  99K Jun  9  2014 QtSvg.so
-rwxr-xr-x.  1 root root  36K Jun  9  2014 QtTest.so
-rwxr-xr-x.  1 root root 472K Mar 31  2014 QtWebKit.so
-rwxr-xr-x.  1 root root 179K Jun  9  2014 QtXmlPatterns.so
-rwxr-xr-x.  1 root root 346K Jun  9  2014 QtXml.so
drwxr-xr-x.  6 root root 4.0K Sep 21 13:56 uic

【问题讨论】:

那么/usr/lib/usr/lib64是同一个目录吗? 不是,很好,我注意到昨晚做了更多的挖掘工作,在我弄清楚罪魁祸首之前不想在这里发帖。我不确定为什么 pip 有时会安装到 /usr/lib,然后有时会安装到 /usr/lib64。如果我卸载/重新安装一个包,它偶尔会切换。我不能每次都重现它。不知道为什么会这样。 你似乎有两个 python-2.7 安装。 /usr/lib64 中的那个是系统之一(即 yum 安装软件包的地方),而/usr/lib 下的那个是您必须自己安装的。尽管库位于不同的目录中,但可执行文件可能都安装在/usr/bin 中。所以每次升级/重新安装 python-2.7 时,/usr/bin(可能包括pip)中的文件都会被覆盖。 不,我只安装了一个 python。 解释器会话的输出显示 python 正在尝试从 /usr/lib/python2.7/site-packages 导入。你的$PYTHONPATH 是什么? 【参考方案1】:

PyQt4 在您的站点包中,因此这是您必须导入的包。如果你特别想从 PyQt4 包中导入 QtWebKit,那就是你必须要做的

from PyQt4 import QtWebKit

【讨论】:

以上是关于CentOS 7 Python ImportError:无法导入名称QtWebkit,即使它在我的PyQt4站点包目录中的主要内容,如果未能解决你的问题,请参考以下文章

centos 7 编译 python3.7.0

CentOs6.7 python2.6升级到2.7.11

centos 7 163 yum 源 python 2.7.5

Centos7上安装python3.7

centos6 升级python2.6 到 python2.7

CentOS 6.4 升级python 2.6.6 到 python 2.7.9