https://bugzilla.redhat.com/show_bug.cgi?id=1922761 reports the following failure: Traceback (most recent call last): File "/bin/ebook-edit", line 20, in <module> sys.exit(ebook_edit()) File "/usr/lib64/calibre/calibre/gui_launch.py", line 119, in ebook_edit main(args) File "/usr/lib64/calibre/calibre/gui2/tweak_book/main.py", line 98, in main _run(args) File "/usr/lib64/calibre/calibre/gui2/tweak_book/main.py", line 66, in _run from calibre.gui2.tweak_book.ui import Main File "/usr/lib64/calibre/calibre/gui2/tweak_book/ui.py", line 29, in <module> from calibre.gui2.tweak_book.boss import Boss File "/usr/lib64/calibre/calibre/gui2/tweak_book/boss.py", line 28, in <module> from calibre.ebooks.oeb.polish.main import SUPPORTED, tweak_polish File "/usr/lib64/calibre/calibre/ebooks/oeb/polish/main.py", line 20, in <module> from calibre.ebooks.oeb.polish.jacket import ( File "/usr/lib64/calibre/calibre/ebooks/oeb/polish/jacket.py", line 9, in <module> from calibre.ebooks.conversion.config import load_defaults File "/usr/lib64/calibre/calibre/ebooks/conversion/config.py", line 20, in <module> os.makedirs(config_dir) File "/usr/lib64/python3.9/os.py", line 225, in makedirs mkdir(name, mode) FileExistsError: [Errno 17] Arquivo existe: '/home/vinicius/.config/calibre/conversion' I assume that the user had two calibre instances started, and they raced on the check and creation of the directory. Let's use os.makedirs(exist_ok=True). (added in Python 3.2). Also, only create the directories when saving/reading the file, not when the module is imported.
calibre

calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book reader devices. It can go out to the internet and fetch metadata for your books. It can download newspapers and convert them into e-books for convenient reading. It is cross platform, running on Linux, Windows and macOS.
For more information, see the calibre About page.
Screenshots
Usage
See the User Manual.
Development
Setting up a development environment for calibre.
A tarball of the source code for the current calibre release.
Bugs
Bug reports and feature requests should be made in the calibre bug tracker at launchpad. GitHub is only used for code hosting and pull requests.
Support calibre
calibre is a result of the efforts of many volunteers from all over the world. If you find it useful, please consider contributing to support its development. Donate to support calibre development.
Building calibre binaries
See Build instructions for instructions on how to build the calibre binaries and installers for all the platforms calibre supports.