PyQSO is a contact logging tool for amateur radio operators.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Christian T. Jacobs df629e7a64
Merge pull request #70 from WB5VQX/master
Corrected log deletion bug.
4 years ago
bin Updated year range. 5 years ago
docs Added the link to the screencast. 5 years ago
pyqso Corrected log deletion bug. 4 years ago
tests Bumping version number to 1.1.0. 5 years ago
.gitignore Put ADIF-related test resources in tests/res. 6 years ago
.travis.yml Migrate to a world map / grey line that uses Cartopy (#64) 5 years ago Preparing for v1.1.0 release. 5 years ago
COPYING Added some core files for the PyQSO program: 10 years ago
Makefile Use pip3 in Makefile. 6 years ago In turn. 5 years ago
requirements.txt Updated dependency list. 5 years ago Bump version number to v1.1.0. 5 years ago
tox.ini Exclude more directories from flake8. 7 years ago

Copyright (C) 2013-2018 Christian Thomas Jacobs.

This file is part of PyQSO.

PyQSO is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

PyQSO is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with PyQSO.  If not, see <>.


PyQSO is a contact logging tool for amateur radio operators.

Build Status Documentation Status


As the name suggests, PyQSO is written primarily in the Python programming language (version 3.x). The graphical user interface has been developed using the GTK+ library through the PyGObject bindings. Therefore, in order to run PyQSO, the Python interpreter must be present on your system along with support for GTK+. On many Linux-based systems this can be accomplished by installing the following Debian packages:

  • python3
  • gir1.2-gtk-3.0
  • python3-gi-cairo

Several extra packages are necessary to enable the full functionality of PyQSO. Many of these (specified in the requirements.txt file) can be readily installed system-wide using the Python package manager by issuing the following command in the terminal:

sudo pip3 install -U -r requirements.txt

but the complete list is given below:

  • python3-matplotlib (version 1.3.0 or later)
  • python3-numpy
  • libxcb-render0-dev
  • cartopy, for drawing the world map. This package in turn depends on python3-scipy, python3-cairocffi, cython, libproj-dev (version 4.9.0 or later), and libgeos-dev (version 3.3.3 or later).
  • geocoder, for QTH lookups.
  • python3-sphinx, for building the documentation.
  • python3-hamlib, for Hamlib support.

Hamlib support

There currently does not exist a Python 3-compatible Debian package for Hamlib. This library must be built manually to enable Hamlib support. As per the instructions on the Hamlib mailing list, run the following commands in the Hamlib root directory (you may need to run sudo apt-get install build-essential autoconf automake libtool beforehand):

export PYTHON=/usr/bin/python3
autoreconf --install
./configure --with-python-binding
sudo make install

You will also need to append the Hamlib bindings and bindings/.libs directories to the PYTHONPATH:

export PYTHONPATH=$PYTHONPATH:/path/to/hamlib/bindings:/path/to/hamlib/bindings/.libs

Installing and running

Assuming that the current working directory is PyQSO's base directory (the directory that the Makefile is in), PyQSO can be run without installation by issuing the following command in the terminal:

python3 bin/pyqso

If the Python package manager pip3 is available on your system then PyQSO can be installed system-wide using:

sudo make install

Once installed, the following command will run PyQSO:



Guidance on how to use PyQSO is available on Read the Docs and in the screencast below.

PyQSO: A Logging Tool for Amateur Radio Operators

The documentation can also be built locally with the following command:

make docs

which will produce an HTML version of the documentation in docs/build/html that can be opened in a web browser.


If you have any comments or questions about PyQSO please send them via email to Christian Jacobs, M0UOS, at