Created attachment 998124 [details] Yum transaction Description of problem: After install calibre on Fedora 21, calibre don't run using a menu item, them i try run calibre using CLI and i get this error: Traceback (most recent call last): File "/bin/calibre", line 20, in <module> sys.exit(calibre()) File "/usr/lib64/calibre/calibre/gui_launch.py", line 46, in calibre from calibre.gui2.main import main File "/usr/lib64/calibre/calibre/gui2/__init__.py", line 8, in <module> from PyQt5.Qt import ( ImportError: cannot import name QStyle Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. yum install calibre 2. 3. Actual results: Expected results: Additional info: Yum transaction how attachment
What does: rpm -V python-qt5 output? also 'rpm -q python-qt5'
Can you paste the output from python -v -c 'from PyQt5.Qt import QStyle' ?
[root@xaxis ~]# rpm -V python-qt5 [root@xaxis ~]# rpm -q python-qt5 python-qt5-5.4-5.fc21.x86_64 [root@xaxis ~]# python -v -c 'from PyQt5.Qt import QStyle' # installing zipimport hook import zipimport # builtin # installed zipimport hook # /usr/lib64/python2.7/site.pyc matches /usr/lib64/python2.7/site.py import site # precompiled from /usr/lib64/python2.7/site.pyc # /usr/lib64/python2.7/os.pyc matches /usr/lib64/python2.7/os.py import os # precompiled from /usr/lib64/python2.7/os.pyc import errno # builtin import posix # builtin # /usr/lib64/python2.7/posixpath.pyc matches /usr/lib64/python2.7/posixpath.py import posixpath # precompiled from /usr/lib64/python2.7/posixpath.pyc # /usr/lib64/python2.7/stat.pyc matches /usr/lib64/python2.7/stat.py import stat # precompiled from /usr/lib64/python2.7/stat.pyc # /usr/lib64/python2.7/genericpath.pyc matches /usr/lib64/python2.7/genericpath.py import genericpath # precompiled from /usr/lib64/python2.7/genericpath.pyc # /usr/lib64/python2.7/warnings.pyc matches /usr/lib64/python2.7/warnings.py import warnings # precompiled from /usr/lib64/python2.7/warnings.pyc # /usr/lib64/python2.7/linecache.pyc matches /usr/lib64/python2.7/linecache.py import linecache # precompiled from /usr/lib64/python2.7/linecache.pyc # /usr/lib64/python2.7/types.pyc matches /usr/lib64/python2.7/types.py import types # precompiled from /usr/lib64/python2.7/types.pyc # /usr/lib64/python2.7/UserDict.pyc matches /usr/lib64/python2.7/UserDict.py import UserDict # precompiled from /usr/lib64/python2.7/UserDict.pyc # /usr/lib64/python2.7/_abcoll.pyc matches /usr/lib64/python2.7/_abcoll.py import _abcoll # precompiled from /usr/lib64/python2.7/_abcoll.pyc # /usr/lib64/python2.7/abc.pyc matches /usr/lib64/python2.7/abc.py import abc # precompiled from /usr/lib64/python2.7/abc.pyc # /usr/lib64/python2.7/_weakrefset.pyc matches /usr/lib64/python2.7/_weakrefset.py import _weakrefset # precompiled from /usr/lib64/python2.7/_weakrefset.pyc import _weakref # builtin # /usr/lib64/python2.7/copy_reg.pyc matches /usr/lib64/python2.7/copy_reg.py import copy_reg # precompiled from /usr/lib64/python2.7/copy_reg.pyc # /usr/lib64/python2.7/traceback.pyc matches /usr/lib64/python2.7/traceback.py import traceback # precompiled from /usr/lib64/python2.7/traceback.pyc # /usr/lib64/python2.7/sysconfig.pyc matches /usr/lib64/python2.7/sysconfig.py import sysconfig # precompiled from /usr/lib64/python2.7/sysconfig.pyc # /usr/lib64/python2.7/re.pyc matches /usr/lib64/python2.7/re.py import re # precompiled from /usr/lib64/python2.7/re.pyc # /usr/lib64/python2.7/sre_compile.pyc matches /usr/lib64/python2.7/sre_compile.py import sre_compile # precompiled from /usr/lib64/python2.7/sre_compile.pyc import _sre # builtin # /usr/lib64/python2.7/sre_parse.pyc matches /usr/lib64/python2.7/sre_parse.py import sre_parse # precompiled from /usr/lib64/python2.7/sre_parse.pyc # /usr/lib64/python2.7/sre_constants.pyc matches /usr/lib64/python2.7/sre_constants.py import sre_constants # precompiled from /usr/lib64/python2.7/sre_constants.pyc # /usr/lib64/python2.7/_sysconfigdata.pyc matches /usr/lib64/python2.7/_sysconfigdata.py import _sysconfigdata # precompiled from /usr/lib64/python2.7/_sysconfigdata.pyc # /usr/lib64/python2.7/site-packages/abrt_exception_handler.pyc matches /usr/lib64/python2.7/site-packages/abrt_exception_handler.py import abrt_exception_handler # precompiled from /usr/lib64/python2.7/site-packages/abrt_exception_handler.pyc import encodings # directory /usr/lib64/python2.7/encodings # /usr/lib64/python2.7/encodings/__init__.pyc matches /usr/lib64/python2.7/encodings/__init__.py import encodings # precompiled from /usr/lib64/python2.7/encodings/__init__.pyc # /usr/lib64/python2.7/codecs.pyc matches /usr/lib64/python2.7/codecs.py import codecs # precompiled from /usr/lib64/python2.7/codecs.pyc import _codecs # builtin # /usr/lib64/python2.7/encodings/aliases.pyc matches /usr/lib64/python2.7/encodings/aliases.py import encodings.aliases # precompiled from /usr/lib64/python2.7/encodings/aliases.pyc # /usr/lib64/python2.7/encodings/utf_8.pyc matches /usr/lib64/python2.7/encodings/utf_8.py import encodings.utf_8 # precompiled from /usr/lib64/python2.7/encodings/utf_8.pyc Python 2.7.8 (default, Nov 10 2014, 08:19:18) [GCC 4.9.2 20141101 (Red Hat 4.9.2-1)] on linux2 Type "help", "copyright", "credits" or "license" for more information. import PyQt5 # directory /usr/lib64/python2.7/site-packages/PyQt5 # /usr/lib64/python2.7/site-packages/PyQt5/__init__.pyc matches /usr/lib64/python2.7/site-packages/PyQt5/__init__.py import PyQt5 # precompiled from /usr/lib64/python2.7/site-packages/PyQt5/__init__.pyc dlopen("/usr/lib64/python2.7/site-packages/PyQt5/Qt.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtCore.so", 2); dlopen("/usr/lib64/python2.7/site-packages/sip.so", 2); # /usr/lib64/python2.7/atexit.pyc matches /usr/lib64/python2.7/atexit.py import atexit # precompiled from /usr/lib64/python2.7/atexit.pyc import sip # dynamically loaded from /usr/lib64/python2.7/site-packages/sip.so import PyQt5.QtCore # dynamically loaded from /usr/lib64/python2.7/site-packages/PyQt5/QtCore.so dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtDBus.so", 2); import PyQt5.QtDBus # dynamically loaded from /usr/lib64/python2.7/site-packages/PyQt5/QtDBus.so dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtGui.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtNetwork.so", 2); import PyQt5.QtNetwork # dynamically loaded from /usr/lib64/python2.7/site-packages/PyQt5/QtNetwork.so dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtSensors.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtSerialPort.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtMultimedia.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtQml.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtWebKit.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtWidgets.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtXml.so", 2); import PyQt5.QtXml # dynamically loaded from /usr/lib64/python2.7/site-packages/PyQt5/QtXml.so dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtXmlPatterns.so", 2); import PyQt5.QtXmlPatterns # dynamically loaded from /usr/lib64/python2.7/site-packages/PyQt5/QtXmlPatterns.so dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtDesigner.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtHelp.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtMultimediaWidgets.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtOpenGL.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtPrintSupport.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtQuick.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtSql.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtSvg.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtTest.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtWebKitWidgets.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtBluetooth.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtPositioning.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtX11Extras.so", 2); dlopen("/usr/lib64/python2.7/site-packages/PyQt5/QtQuickWidgets.so", 2); import PyQt5.Qt # dynamically loaded from /usr/lib64/python2.7/site-packages/PyQt5/Qt.so import systemd # directory /usr/lib64/python2.7/site-packages/systemd # /usr/lib64/python2.7/site-packages/systemd/__init__.pyc matches /usr/lib64/python2.7/site-packages/systemd/__init__.py import systemd # precompiled from /usr/lib64/python2.7/site-packages/systemd/__init__.pyc # /usr/lib64/python2.7/site-packages/systemd/journal.pyc matches /usr/lib64/python2.7/site-packages/systemd/journal.py import systemd.journal # precompiled from /usr/lib64/python2.7/site-packages/systemd/journal.pyc # /usr/lib64/python2.7/__future__.pyc matches /usr/lib64/python2.7/__future__.py import __future__ # precompiled from /usr/lib64/python2.7/__future__.pyc dlopen("/usr/lib64/python2.7/lib-dynload/datetime.so", 2); import datetime # dynamically loaded from /usr/lib64/python2.7/lib-dynload/datetime.so # /usr/lib64/python2.7/uuid.pyc matches /usr/lib64/python2.7/uuid.py import uuid # precompiled from /usr/lib64/python2.7/uuid.pyc import ctypes # directory /usr/lib64/python2.7/ctypes # /usr/lib64/python2.7/ctypes/__init__.pyc matches /usr/lib64/python2.7/ctypes/__init__.py import ctypes # precompiled from /usr/lib64/python2.7/ctypes/__init__.pyc dlopen("/usr/lib64/python2.7/lib-dynload/_ctypes.so", 2); import _ctypes # dynamically loaded from /usr/lib64/python2.7/lib-dynload/_ctypes.so # /usr/lib64/python2.7/struct.pyc matches /usr/lib64/python2.7/struct.py import struct # precompiled from /usr/lib64/python2.7/struct.pyc dlopen("/usr/lib64/python2.7/lib-dynload/_struct.so", 2); import _struct # dynamically loaded from /usr/lib64/python2.7/lib-dynload/_struct.so # /usr/lib64/python2.7/ctypes/_endian.pyc matches /usr/lib64/python2.7/ctypes/_endian.py import ctypes._endian # precompiled from /usr/lib64/python2.7/ctypes/_endian.pyc # /usr/lib64/python2.7/ctypes/util.pyc matches /usr/lib64/python2.7/ctypes/util.py import ctypes.util # precompiled from /usr/lib64/python2.7/ctypes/util.pyc # /usr/lib64/python2.7/tempfile.pyc matches /usr/lib64/python2.7/tempfile.py import tempfile # precompiled from /usr/lib64/python2.7/tempfile.pyc # /usr/lib64/python2.7/io.pyc matches /usr/lib64/python2.7/io.py import io # precompiled from /usr/lib64/python2.7/io.pyc dlopen("/usr/lib64/python2.7/lib-dynload/_io.so", 2); import _io # dynamically loaded from /usr/lib64/python2.7/lib-dynload/_io.so # /usr/lib64/python2.7/random.pyc matches /usr/lib64/python2.7/random.py import random # precompiled from /usr/lib64/python2.7/random.pyc dlopen("/usr/lib64/python2.7/lib-dynload/math.so", 2); import math # dynamically loaded from /usr/lib64/python2.7/lib-dynload/math.so dlopen("/usr/lib64/python2.7/lib-dynload/binascii.so", 2); import binascii # dynamically loaded from /usr/lib64/python2.7/lib-dynload/binascii.so # /usr/lib64/python2.7/hashlib.pyc matches /usr/lib64/python2.7/hashlib.py import hashlib # precompiled from /usr/lib64/python2.7/hashlib.pyc dlopen("/usr/lib64/python2.7/lib-dynload/_hashlib.so", 2); import _hashlib # dynamically loaded from /usr/lib64/python2.7/lib-dynload/_hashlib.so dlopen("/usr/lib64/python2.7/lib-dynload/_randommodule.so", 2); import _random # dynamically loaded from /usr/lib64/python2.7/lib-dynload/_randommodule.so dlopen("/usr/lib64/python2.7/lib-dynload/cStringIO.so", 2); import cStringIO # dynamically loaded from /usr/lib64/python2.7/lib-dynload/cStringIO.so dlopen("/usr/lib64/python2.7/lib-dynload/fcntlmodule.so", 2); import fcntl # dynamically loaded from /usr/lib64/python2.7/lib-dynload/fcntlmodule.so import thread # builtin import logging # directory /usr/lib64/python2.7/logging # /usr/lib64/python2.7/logging/__init__.pyc matches /usr/lib64/python2.7/logging/__init__.py import logging # precompiled from /usr/lib64/python2.7/logging/__init__.pyc dlopen("/usr/lib64/python2.7/lib-dynload/timemodule.so", 2); import time # dynamically loaded from /usr/lib64/python2.7/lib-dynload/timemodule.so # /usr/lib64/python2.7/weakref.pyc matches /usr/lib64/python2.7/weakref.py import weakref # precompiled from /usr/lib64/python2.7/weakref.pyc # /usr/lib64/python2.7/collections.pyc matches /usr/lib64/python2.7/collections.py import collections # precompiled from /usr/lib64/python2.7/collections.pyc dlopen("/usr/lib64/python2.7/lib-dynload/_collectionsmodule.so", 2); import _collections # dynamically loaded from /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so dlopen("/usr/lib64/python2.7/lib-dynload/operator.so", 2); import operator # dynamically loaded from /usr/lib64/python2.7/lib-dynload/operator.so # /usr/lib64/python2.7/keyword.pyc matches /usr/lib64/python2.7/keyword.py import keyword # precompiled from /usr/lib64/python2.7/keyword.pyc # /usr/lib64/python2.7/heapq.pyc matches /usr/lib64/python2.7/heapq.py import heapq # precompiled from /usr/lib64/python2.7/heapq.pyc dlopen("/usr/lib64/python2.7/lib-dynload/itertoolsmodule.so", 2); import itertools # dynamically loaded from /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so dlopen("/usr/lib64/python2.7/lib-dynload/_heapq.so", 2); import _heapq # dynamically loaded from /usr/lib64/python2.7/lib-dynload/_heapq.so # /usr/lib64/python2.7/threading.pyc matches /usr/lib64/python2.7/threading.py import threading # precompiled from /usr/lib64/python2.7/threading.pyc dlopen("/usr/lib64/python2.7/lib-dynload/syslog.so", 2); import syslog # dynamically loaded from /usr/lib64/python2.7/lib-dynload/syslog.so dlopen("/usr/lib64/python2.7/site-packages/systemd/_journal.so", 2); import systemd._journal # dynamically loaded from /usr/lib64/python2.7/site-packages/systemd/_journal.so dlopen("/usr/lib64/python2.7/site-packages/systemd/_reader.so", 2); import systemd._reader # dynamically loaded from /usr/lib64/python2.7/site-packages/systemd/_reader.so dlopen("/usr/lib64/python2.7/site-packages/systemd/id128.so", 2); import systemd.id128 # dynamically loaded from /usr/lib64/python2.7/site-packages/systemd/id128.so Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: cannot import name QStyle # clear __builtin__._ # clear sys.path # clear sys.argv # clear sys.ps1 # clear sys.ps2 # clear sys.exitfunc # clear sys.exc_type # clear sys.exc_value # clear sys.exc_traceback # clear sys.last_type # clear sys.last_value # clear sys.last_traceback # clear sys.path_hooks # clear sys.path_importer_cache # clear sys.meta_path # clear sys.flags # clear sys.float_info # restore sys.stdin # restore sys.stdout # restore sys.stderr # cleanup __main__ # cleanup[1] random # cleanup[1] sysconfig # cleanup[1] systemd # cleanup[1] struct # cleanup[1] zipimport # cleanup[1] operator # cleanup[1] signal # cleanup[1] PyQt5 # cleanup[1] encodings # cleanup[1] math # cleanup[1] PyQt5.QtDBus # cleanup[1] _ctypes # cleanup[1] itertools # cleanup[1] systemd.journal # cleanup[1] __future__ # cleanup[1] _collections # cleanup[1] _heapq # cleanup[1] binascii # cleanup[1] sre_constants # cleanup[1] PyQt5.Qt # cleanup[1] _warnings # cleanup[1] _codecs # cleanup[1] systemd.id128 # cleanup[1] _sysconfigdata # cleanup[1] _struct # cleanup[1] hashlib # cleanup[1] keyword # cleanup[1] syslog # cleanup[1] posix # cleanup[1] encodings.aliases # cleanup[1] exceptions # cleanup[1] abrt_exception_handler # cleanup[1] PyQt5.QtXml # cleanup[1] _random # cleanup[1] site # cleanup[1] sip # cleanup[1] PyQt5.QtXmlPatterns # cleanup[1] _weakref # cleanup[1] _weakrefset # cleanup[1] systemd._reader # cleanup[1] datetime # cleanup[1] systemd._journal # cleanup[1] encodings.utf_8 # cleanup[1] _hashlib # cleanup[1] uuid # cleanup[1] logging # cleanup[1] traceback # cleanup[1] weakref # cleanup[1] time # cleanup[1] collections # cleanup[1] threading # cleanup[1] cStringIO # cleanup[1] atexit # cleanup[1] ctypes # cleanup[1] codecs # cleanup[1] heapq # cleanup[1] ctypes.util # cleanup[1] ctypes._endian # cleanup[1] tempfile # cleanup[1] re # cleanup[1] fcntl # cleanup[1] thread # cleanup[1] sre_compile # cleanup[1] io # cleanup[1] _io # cleanup[1] abc # cleanup[1] _sre # cleanup[1] sre_parse # cleanup[2] PyQt5.QtNetwork # cleanup[2] warnings # cleanup[2] UserDict # cleanup[2] PyQt5.QtCore # cleanup[2] os # cleanup[2] posixpath # cleanup[2] errno # cleanup[2] os.path # cleanup[2] copy_reg # cleanup[2] linecache # cleanup[2] _abcoll # cleanup[2] genericpath # cleanup[2] stat # cleanup[2] types # cleanup sys # cleanup __builtin__ # cleanup ints: 66 unfreed ints # cleanup floats: 31 unfreed floats
It seems your Fedora lacks for some Python's libraries and dependencies are broken for the Calibre's rpm, For me problem was resolved by installing following packages: qt5-qtbase-gui qt5-qtdeclarative Please, try run: sudo yum -y install qt5-qtbase-gui qt5-qtdeclarative
Packages installed, calibre working now. I think the calibre rpm have a dependence lost with qt5-qtbase-gui or qt5-qtdeclarative and if you don't use KDE maybe you don't have both packages installed before install calibre. Thank you so much laroslav
calibre already has either direct or indirect dependencies on both of those: rpm -qR calibre includes: libQt5Gui.so.5()(64bit) qt5-qtwebkit The former is includes in qt5-qtbase-gui, the latter already depends on qt5-qtdeclarative I suspect either of you may have 3rd-party packages that are interfering with proper dependency resolution for qt5. can either of you do: rpm -q --whatprovides 'libQt5Gui.so.5()(64bit)' and/or rpm -q --whatprovides 'libQt5Gui.so.5()' if it returns any except qt5-qtbase-gui, then we have our culprit.
For example, one known bad one is: viber as outlined in a recent post I made about it: https://plus.google.com/u/0/+RexDieter/posts/L8n6gEDGQpV
Sure, [root@xaxis ~]# rpm -q --whatprovides 'libQt5Gui.so.5()(64bit)' hipchat-2.2.1328-1.x86_64 qt5-qtbase-gui-5.4.0-2.fc21.x86_64 [root@xaxis ~]# rpm -q --whatprovides 'libQt5Gui.so.5()' ningún paquete proporciona libQt5Gui.so.5() ningún paquete proporciona == no package provides Hipchat is the evil culprit!
OK, I'll try to reach out to Hipchat folks with some help/constructive-criticism to make their packaging better (and less harmful).
I sent a message outlining the problem to hipchat "Contact support" link from https://help.hipchat.com/knowledgebase/topics/23214-known-issues we'll see how they respond.
(In reply to Rex Dieter from comment #7) > For example, one known bad one is: > > viber > > as outlined in a recent post I made about it: > https://plus.google.com/u/0/+RexDieter/posts/L8n6gEDGQpV Hi Rex, You are right. Viber package installed in my Fedora. More details are listed below. Viber claims it provides library libQt5Gui.so.5()(64bit). It is not quite true. It provides only bundle copy of this lib. [vader2@tyche ~]$ rpm -q --whatprovides 'libQt5Gui.so.5()(64bit)' viber-4.2.2.6-2.x86_64 qt5-qtbase-gui-5.4.0-2.fc21.x86_64 Calibre has correct dependencies: [vader2@tyche ~]$ rpm -qR calibre | grep -i qt5gui libQt5Gui.so.5()(64bit) And Viber provides lib which is not in a system-wide scope [vader2@tyche ~]$ rpm -ql viber | grep -i qt5gui /opt/viber/libQt5Gui.so.5 So the issue is not with the calibre package but with the viber rpm. Rex, thank you for comments -- Iaroslav
*** This bug has been marked as a duplicate of bug 1197311 ***
I've just hit this and I do *not* have any of the relevant packages installed, and I'm totally stumped. rlpowell@vrici> calibre --version Traceback (most recent call last): File "/bin/calibre", line 20, in <module> sys.exit(calibre()) File "/usr/lib64/calibre/calibre/gui_launch.py", line 61, in calibre from calibre.gui2.main import main File "/usr/lib64/calibre/calibre/gui2/__init__.py", line 8, in <module> from PyQt5.Qt import ( ImportError: cannot import name QStyle rlpowell@vrici> rpm -q --whatprovides 'libQt5Gui.so.5()(64bit)' qt5-qtbase-gui-5.5.0-15.fc22.x86_64 rlpowell@vrici> rpm -q --whatprovides 'libQt5Gui.so.5()' no package provides libQt5Gui.so.5() Help??
rpm -q python-qt5 and rpm -V python-qt5 outputs what?
rlpowell@vrici> rpm -q python-qt5 python-qt5-5.5-1.fc22.x86_64 rlpowell@vrici> rpm -V python-qt5 rlpowell@vrici>
Bug still present on Fedora 22: $ rpm -q python-qt5 python-qt5-5.5-1.fc22.x86_64 $ rpm -V python-qt5 $