Calibre could not start in Fedora 41 (Linux)
What is Calibre?
Calibre: The one-stop solution for all your e-book needs
Problem description
I could not start the program in Fedora 41 and the command line, the Bash, told me this:
sven@fedora:~$ calibre
Traceback (most recent call last):
File „/usr/bin/calibre“, line 21, in
sys.exit(calibre())~^^ File „/usr/lib64/calibre/calibre/gui_launch.py“, line 73, in calibre main(args) ^^^^^^ File „/usr/lib64/calibre/calibre/gui2/main.py“, line 547, in main run_main(app, opts, args, gui_debug, si, retry_communicate=True) ~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/lib64/calibre/calibre/gui2/main.py“, line 559, in run_main
return run_gui(opts, args, app, gui_debug=gui_debug)
File „/usr/lib64/calibre/calibre/gui2/main.py“, line 397, in run_gui
run_gui_(opts, args, app, gui_debug)~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/lib64/calibre/calibre/gui2/main.py“, line 407, in run_gui_
from calibre.gui2.ui import Main
File „/usr/lib64/calibre/calibre/gui2/ui.py“, line 26, in
from calibre.customize.ui import available_store_plugins, interface_actions
File „/usr/lib64/calibre/calibre/customize/ui.py“, line 28, in
from calibre.customize.builtins import plugins as builtin_plugins
File „/usr/lib64/calibre/calibre/customize/builtins.py“, line 731, in
from calibre.devices.kobo.driver import KOBO, KOBOTOUCH
File „/usr/lib64/calibre/calibre/devices/kobo/driver.py“, line 24, in
from calibre.devices.kobo.books import Book, ImageWrapper, KTCollectionsBookList
File „/usr/lib64/calibre/calibre/devices/kobo/books.py“, line 14, in
from calibre.ebooks.metadata.book.formatter import SafeFormat
File „/usr/lib64/calibre/calibre/ebooks/metadata/book/formatter.py“, line 9, in
from calibre.utils.formatter import TemplateFormatter
File „/usr/lib64/calibre/calibre/utils/formatter.py“, line 23, in
from calibre.utils.formatter_functions import StoredObjectType, formatter_functions, function_object_type, get_database
File „/usr/lib64/calibre/calibre/utils/formatter_functions.py“, line 29, in
from calibre.db.notes.exim import expand_note_resources, parse_html
File „/usr/lib64/calibre/calibre/db/notes/exim.py“, line 7, in
from html5_parser import parse
File „/usr/lib64/python3.13/site-packages/html5_parser/init.py“, line 30, in
raise RuntimeError(
…<4 lines>…
LIBXML_VERSION, etree.LIBXML_VERSION))
RuntimeError: html5-parser and lxml are using different versions of libxml2. This happens commonly when using pip installed versions of lxml. Use pip install –no-binary lxml lxml instead. libxml2 versions: html5-parser: (2, 12, 10) != lxml: (2, 14, 4)
So I tried to install the devel packages of
sudo dnf install libxml2-devel
Das Paket „libxml2-devel-2.12.10-1.fc41.x86_64“ ist bereits installiert.
Already installed
sudo dnf install libxslt-devel
Installiere:
libxslt-devel x86_64 1.1.43-1.fc41 updates 957.2 KiB
Abhängigkeiten werden installiert:
libgpg-error-devel x86_64 1.50-2.fc41 fedora 245.1 KiB
Then I tried an older version of lxml here 4.6.5, but it has failed because my Python is too new for this lxml version.
pip install lxml==4.6.5
Defaulting to user installation because normal site-packages is not writeable
Collecting lxml==4.6.5
Using cached lxml-4.6.5.tar.gz (3.2 MB)
Preparing metadata (setup.py) … done
Building wheels for collected packages: lxml
DEPRECATION: Building ‚lxml‘ using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `–use-pep517` option, (possibly combined with `–no-build-isolation`), or adding a `pyproject.toml` file to the source tree of ‚lxml‘. Discussion can be found at https://github.com/pypa/pip/issues/6334
Building wheel for lxml (setup.py) … error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [761 lines of output]
Building lxml version 4.6.5.
/tmp/pip-install-e9azb62e/lxml_fee10e7ff5734eeaa43dccb198788229/setup.py:67: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
import pkg_resources
Building without Cython.
Building against libxml2 2.12.10 and libxslt 1.1.43
/home/sven/.local/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: BSD License
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
self._finalize_license_expression()
running bdist_wheel
running build
running build_py
creating build/lib.linux-x86_64-cpython-313/lxml
copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-cpython-313/lxml
copying src/lxml/sax.py -> build/lib.linux-x86_64-cpython-313/lxml
copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-cpython-313/lxml
Then I removed the installed version of Calibre from the repositories
sudo dnf remove calibre
And I installed the newest version:
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
Now I have the newest version 8.8.0