Lector is a free, open source publishing project written in Python and released under GPL-3.0. It has 1,552 GitHub stars, 208 forks and 52 open issues, and was last pushed 2 months ago. On this registry it ranks #28 of 46 tracked projects in Publishing, with 5 head-to-head comparisons available.

What is Lector?

What it is

Lector is a Python and Qt desktop ebook reader released under GPL-3.0 or later. It lives in the Qt and Python desktop ecosystem, and its topics describe it as a crossplatform reader for ebooks and comics. The README shows a graphical application with views for reading, table browsing, distraction free reading, comics, annotations, bookmarks, view profiles, metadata, and a dictionary.

The problem it solves is reading many local ebook and comic formats in one application. The README says it supports PDF, EPUB, DjVu, FB2, MOBI, AZW, AZW3, AZW4, CBR, CBZ, and Markdown. Optional packages add PDF, DjVu, Markdown, and TXT support, so the needed libraries determine the full format range.

Key capabilities

  • It reads PDF, EPUB, DjVu, FB2, MOBI, AZW, AZW3, AZW4, CBR, CBZ, and Markdown, as listed in the README.
  • It uses Python, PyQt5, lxml, beautifulsoup4, and xmltodict as needed packages, with Qt providing the desktop interface.
  • It adds optional format support through python-pymupdf, python-djvulibre, python-markdown, and textile.
  • It shows comic reading, annotation, bookmark, view profile, metadata editor, dictionary, and distraction free views in screenshots.
  • It provides translation work through Qt Linguist, a SAMPLE.ts file, and pull request submission of translated string files.
  • It offers manual installation and Linux packages for AUR, Gentoo unofficial, Fedora unofficial, and openSUSE.

Who uses it and how

  • A local reader can install the application and open supported ebook or comic files, including PDF, EPUB, DjVu, FB2, MOBI, AZW, AZW3, AZW4, CBR, CBZ, and Markdown.
  • A Linux user can install through AUR, Gentoo unofficial, Fedora unofficial, or openSUSE packages, or build from source with setup.py.
  • A translator or contributor can work with Qt Linguist files, run the executable with debug, collect Lector.log and terminal output, and report a failing book when only one book fails.

Getting started

Typical installation means installing dependencies, cloning the repository, running python setup.py build or python setup.py install, or launching lector/main.py. The README also lists AUR, Gentoo unofficial, Fedora unofficial, and openSUSE packages.

When to use it — and when not to

Lector fits users who want a GPL-licensed Qt and Python reader for many local ebook and comic formats. It requires the user to operate a desktop Python and Qt environment, install optional libraries for specific formats, and build or use the listed Linux packages. The repository lists 52 open issues, and the README support workflow asks for debug logs and a copy of a failing book, so format or environment problems may need user-side testing and reporting.

project readme (upstream, from github) — read inline

Qt based ebook reader

Currently supports:

  • pdf
  • epub
  • djvu
  • fb2
  • mobi
  • azw / azw3 / azw4
  • cbr / cbz
  • md

Contribute

Paypal

Bitcoin: 17jaxj26vFJNqQ2hEVerbBV5fpTusfqFro

Requirements

Needed

Package Version tested
Python 3.6
PyQt5 5.10.1
python-lxml 4.3.0
python-beautifulsoup4 4.6.0
python-xmltodict 0.11.0

Optional

Package Version tested Required for
python-pymupdf 1.14.5 PDF support
python-djvulibre 0.8.4 DjVu support
python-markdown 3.0.1 Markdown support
textile 3.0.4 TXT support

Support

When reporting issues:

  • Make sure you're at the latest commit.
  • Run with $EXECUTABLEPATH debug.
  • Include the log ~/.local/share/Lector/Lector.log AND terminal output.
  • If you're having trouble with a book while the rest of the application / other books work, please link to a copy of the book itself.
  • If nothing is working, please make sure the requirements mentioned above are all installed, and are at least at the version mentioned.

Installation

Manual

  1. Install dependencies - I recommend using your package manager for this.

  2. Clone repository

  3. Type the following in the root directory:

     $ python setup.py build
     # python setup.py install
    
  4. OR launch with lector/__main__.py

Available packages

Translations

  1. There is a SAMPLE.ts file here. Open it in Qt Linguist.
  2. Pick the language you wish to translate to.
  3. Translate relevant strings.
  4. Try to resist the urge to include profanity.
  5. Save the file as Lector_ and send it to me, preferably as a pull request.

Please keep the translations short. There's only so much space for UI elements.

Screenshots

Main window

alt tag

Table view

alt tag

Book reading view

alt tag

Distraction free view

alt tag

Annotation support

alt tag

Comic reading view

alt tag

Bookmark support

alt tag

View profiles

alt tag

Metadata editor

alt tag

In program dictionary

alt tag

Settings window

alt tag

Attributions

License

Lector is released under the GNU General Public License v3.0 or any later version. See the LICENSE file for details.

Frequently asked questions

Is Lector free to use?

Lector is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Lector do?

Qt based ebook reader

What is Lector written in?

Lector is primarily written in Python. Its source is publicly available at https://github.com/BasioMeusPuga/Lector, and it has 1,552 GitHub stars.