KC7MM Wiki

Amateur Radio with KC7MM

User Tools

Site Tools


Installing PyQSO on a Debian workstation

Linux User Net topic, October 7, 2019


I have maintained the log for my Amateur Radio station using the time-honored paper method. I decided to try a computer log, and it looked to me that PyQSO might meet my needs.

This is about installing and using the PyQSO contact logging software on a Debian 10 system.

  • Written in Python3, the currently-supported version.
  • Source code is available on Github, license is GPLv3.
  • Uses GTK+ toolkit
  • Stores the log in a SQLite database, can export to standard log interchange formats. All data is in a single disk file, so is easy to back up or move.


What I could have done: install from Debian repository. it has the latest version. Instead, I followed the instructions on the application's Web site to install from source code, which apply for any distribution.

Basic installation

  • Download the software tarball from the Github.
  • Extracted into a subdirectory of my home directory
  • Started a terminal, cd to Python file location, ran with: python3 pyqso
    • Program started normally and appeared to work.
    • Got error messages for several Python modules


Getting all the correct dependencies installed is a common problem for applications that are installed from source code.

  • One of the aspects of Python that makes such a popular language is the number of code libraries that are available for programmers to use. This saves them the time and effort of having to code their own for special-purpose use. (There are many libraries for Amateur Radio.)
  • The disadvantage of using libraries is that they have to be installed on a in order for the program to run, and they most often are not there by default. Often, as here, it's up to the user to take care of that.
  • For Linux, many Python libraries are available in the distro repository, and can be installed through the package manager.
  • Another way to install libraries is to use pip, the Python package installer. Pip uses a centralized database (PyPi, the Python Package Index) to locate library packages, and installs them from where they are maintained on the Internet.
  • The usual tradeoffs apply: packages installed by pip generally will be newer than those contained in the distro repository.

I located information on the dependencies in README file the Github page, which included instructions to install them:

  • Installed the Python 3 package installer, pip3. This is thepython3-pip package.
  • Ran sudo pip3 install -U -r requirements.txt to install the dependencies listed in requirements.txt. This does not include hamlib.
  • All installed correctly except cartopy, which appeared to be compiling with gcc, and failed.

Executed the program again from command line, confirmed that cartopy and hamlib were missing.

  • Searched the repository and found packages for both: python3-cartopy, python3-libhamlib3.
  • Installed both packages, started the program — with no errors.
  • I might have been able to install all of them from the repository.

Shell script

The software includes a Python install script to install it to run system-wide. I'm the only one who will use it, so instead I wrote a simple shell script, made it executable, and copied it to /usr/bin. Runs fine from there using the command pyqso. Tested using Alt-F2, and it shows up when queried with which.

PyQSO in use

The developer has produced a good video(YouTube) introduction to the application, so there's no need for me to repeat it here. Do watch it if you're considering this program for your use.

Instead, I'll make some quick observations, based on very limited use so far.

  • The interface of the main window is easy to understand and use, with good keyboard shortcuts (but not to select the call sign lookup box).
  • The form for log entries has some minor usability problems:
    • Tabbing between fields gets stuck in the Notes box — have to use Ctl-Tab to escape it and move on to the Name field.
    • The dropdown list for Mode doesn't search as you type, forcing you to scroll through a very long alphabetical list — for example, to get to SSB. You can set a default mode in Preferences to help with this, but it's still a long way from CW to SSB.
  • The log entry form has some useful lookup and autofill functions,
  • In Preferences you can select the fields that show in the log view on the main page.


I want to give this software a more thorough test. I'm not a contester and I'm not after DX awards, so it just might meet my needs.

Being a Python programmer myself, I intend to poke around a bit to see whether there's any possibility of customizing it for my own purposes. We'll see.

Finally, I installed PyQSO from the Mint repository on my ham laptop. Then I copied the database file from the workstation, and it opened without any problem. So, with a suitable method of synching the file between the two hosts, I could use either one for logging. Or, I could set up an NFS server and keep the DB file there. Interestingly, there was no hamlib package for Python3 in the Mint repository, as there had been in Debian 10.

hamsw/pyqso.txt · Last modified: 2019/10/14 22:20 by KC7MM