简体   繁体   English

PyQt5-错误导入QtWidgets QtGui

[英]PyQt5 - Error import QtWidgets QtGui

I'm running Ubuntu 13.10 (python-3.3.2+) . 我正在运行Ubuntu 13.10(python-3.3.2 +)。 I've installed Qt5.2.1 (linux installer) , SIP 4.15.5 & PyQt5 both from source of the official site. 我已经从官方网站的源代码安装了Qt5.2.1(Linux安装程序),SIP 4.15.5和PyQt5。

PyQt5 build : PyQt5版本:

The Qt qmake is located here Qt qmake位于此处

jeby6372@mercure:~$ ls /opt/Qt/5.2.1/gcc_64/bin
assistant             qdbus           qml1plugindump    qmlviewer
designer              qdbuscpp2xml    qml2puppet        qtpaths
lconvert              qdbusviewer     qmlbundle         rcc
linguist              qdbusxml2cpp    qmlimportscanner  syncqt.pl
lrelease              qdoc            qmlmin            uic
lupdate               qhelpconverter  qmlplugindump     xmlpatterns
moc                   qhelpgenerator  qmlprofiler       xmlpatternsvalidator
pixeltool             qmake           qmlscene
qcollectiongenerator  qml             qmltestrunner

My python path 我的python路径

jeby6372@mercure:~$ echo $PYTHONPATH
:/usr/lib/python3.3/site-packages

Qt5 libraries (shorten list for display purpose): Qt5库(出于显示目的而缩短列表):

jeby6372@mercure:/opt/Qt/5.2.1/gcc_64/lib$ ls
cmake                              libQt5Positioning.so.5
libicudata.so.51                   libQt5Positioning.so.5.2
libicudata.so.51.1                 libQt5Positioning.so.5.2.1
libqgsttools_p.so                  libQt5PrintSupport.so.5.2.1
libqgsttools_p.so.1                libQt5QmlDevTools.a
libQt5CLucene.so.5.2               libQt5QuickParticles.so.5.2.1
libQt5Concurrent.so.5.2            libQt5QuickTest.la
libQt5Concurrent.so.5.2.1          libQt5QuickTest.prl
libQt5Core.so.5.2.1                libQt5Script.prl
libQt5DBus.la                      libQt5Script.so
....... 
libQt5Multimedia.so                libQt5WebKit.prl
libQt5Nfc.la                       libQt5Widgets.so.5.2.1
libQt5Nfc.prl                      libQt5X11Extras.la
libQt5Nfc.so                       libQt5X11Extras.prl
libQt5Nfc.so.5                     libQt5X11Extras.so
libQt5Nfc.so.5.2                   libQt5X11Extras.so.5
libQt5OpenGLExtensions.a           libQt5X11Extras.so.5.2.1
libQt5OpenGLExtensions.la          libQt5Xml.la
libQt5OpenGL.so                    libQt5XmlPatterns.so.5
libQt5OpenGL.so.5                  libQt5XmlPatterns.so.5.2
libQt5OpenGL.so.5.2.1              libQt5Xml.prl
libQt5Platfor
libQt5PlatformSupport.prl          libQt5Xml.so.5.2
libQt5Positioning.so

I ran the following commands in the source directory extracted from the official PyQt-gpl-5.2.1.tar.gz tarball : 我在从官方PyQt-gpl-5.2.1.tar.gz tarball提取的源目录中运行以下命令:

python3 configure.py --qmake /opt/Qt/5.2.1/gcc_64/bin/qmake # My PyQt5 location
sudo make
sudo make install

Issue: 问题:

I can only import a restricted set of modules 我只能导入一组受限制的模块

>>> from PyQt5.QtCore import *
>>> from PyQt5.QtNetwork import *
>>> from PyQt5.QtXmlPatterns import *
>>> from PyQt5.Qt import *
>>> from PyQt5.QtGui import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'PyQt5.QtGui'
>>> from PyQt5.QtWidgets import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'PyQt5.QtWidgets'

I can import QtCore, QtNetwork ... as listed in /usr/local/python3.3/sites-packages/PyQt5 : 我可以导入/usr/local/python3.3/sites-packages/PyQt5中列出的QtCore,QtNetwork ...:

jeby6372@mercure:/usr/lib/python3.3/site-packages/PyQt5$ ls
__init__.py  QtCore.so  QtDBus.so  QtNetwork.so  Qt.so  QtXmlPatterns.so  uic

But I can't import QtWidgets, QtGui .. and so on. 但是我无法导入QtWidgets,QtGui ..等。

It seems that the PyQt5 libraries are not all copied here. 似乎PyQt5库并未全部复制到此处。

The same problem is described in this post ... but unfortunately with no response from the RiverBanck's team : 这篇文章中描述了相同的问题...但是不幸的是,RiverBanck的团队没有回应:

Any idea? 任何想法?

Missing package 缺少包裹

Install the missing libgl1-mesa-dev dependency as suggested by mata. 按照mata的建议安装缺少的libgl1-mesa-dev依赖项。 It's a free implementation of the OpenGL API. 它是OpenGL API的免费实现。

Build 建立

sudo apt-get install libgl1-mesa-dev

Create or clean up your PyQt5 compilation environment and build it according to the regular procedure. 创建或清理您的PyQt5编译环境并根据常规过程进行构建。

Alternative 替代

If this fix doesn't solve your problem, install the libgl1-mesa-glx package (GLX runtime) and the libgl1-mesa-dri (drawing accelerator) if they are also missing and proceed with Build instructions. 如果此修补程序不能解决您的问题,请安装libgl1-mesa-glx软件包(GLX运行时)和libgl1-mesa-dri(绘图加速器)(如果还缺少),然后继续执行构建说明。

Hope this help. 希望能有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM