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 163 yum 源 python 2.7.5