PySolFC mit Python3 (Fix)

Wieder mal ein Programm, dass es in die Paketquellen von z.B. (K)Ubuntu 22.04 LTS geschafft hat und nicht läuft. Und wieder das Problem, dass es für Python 2.x entwickelt wurde und mit Python 3.x ins Stolpern kommt. Beim Start erhält man die Fehlermeldung

ModuleNotFoundError: No module named 'formatter'

Mittlerweile gibt es allerdings einen Fix damit es auch mit Python 3.x läuft:

Finden könne wir den Fix auf Github. Die alternative Suche nach einem PPA hat leider nicht zum gewünschten Erfolg geführt. Da ich den Fix schon ausgeführt habe, hier ein recht einfacher Weg mit Erklärungen.

Wer etwas frustriert PySolFC wieder deinstalliert hat, oder es erstmailig installieren möchte geht folgenden Weg:

sudo apt install -y pysolfc pysolfc-cardsets

Nun werfen wir einen Blick in das Installationsverzeichnis /usr/share/games/pysolfc und finden dort (hier auzugsweise) folgende Dateistruktur

...
pysollib/
    |-- formatter.py
    |-- htmllib2.py
      |-- kivy/
          |-- tkhtml.py
      |-- pysolgtk/
          |-- tkhtml.py
        |-- ui/
          |-- tkile/
              |-- tkhtml.py
...

Die hier angeführten *.py-Dateien müssen nun gegen die gefixten ausgetauscht werden. Das ist mit Aufwand verbunden und da ich diesen schon hinter mir habe, hier nun ein Archiv mit den gefixten Dateien mit Stand vom 22.09.2022:

Download pysolfc_patch_20220927.tar.gz

Die MD5-Hashsumme zur Überprüfung:

09080919c9b7905ea8ce509d70aeca6e

Wer mag kann die Archivdateien mit den Quelltexten im o.g. Link auf Github vergleichen...

Wir laden das Archiv mit unserem Browser herunter und sichern danach die originalen Dateien. Dazu öffnen wir ein Terminal:

cd /usr/share/games/pysolfc/pysollib
sudo mv formatter.py formatter.py.old
sudo mv htmllib2.py htmllib2.py.old
sudo mv kivy/tkhtml.py kivy/tkhtml.py.old
sudo mv pysolgtk/tkhtml.py pysolgtk/tkhtml.py.old
sudo mv ui/tkile/tkhtml.py ui/tkile/tkhtml.py.old

Wir kopieren nun das heruntergeladene Archiv nach /usr/share/games/pysolfc/pysollib/, den Pfad bitte anpassen

sudo cp /Pfad/zum/Download/Ordner/pysolfc_patch_20220927.tar.gz /usr/share/games/pysolfc/pysollib/

und entpacken es:

sudo tar -xzf pysolfc_patch_20220927.tar.gz

Das war es schon und da wir die Konsole noch offen haben testen wir es:

pysolfc &

und schon sollte uns PySolFC begrüßen

Bildbeschreibung