Grafische Oberflächen mit Tkinter

Python Anwendungen laufen meist in Kommandozeilenfenster (Shell) ab.
Um z.B. Abfragen an den Bediener zu richten sind grafische Oberflächen hilfreich. In python kann man diese mit de Bibliothek TKinter erstellen. Hier können z.B. Unterscheidungen getroffen werden wie ein Programm ausgeführt werden soll.

Zuerst TKinter im python programm einbinden:
import tkinter as tk

***In Bearbeitung***

Excel mit python bearbeiten und konvertieren

Was ist das Ziel?

Ich wollte eine Exceltabelle bearbeiten (Filter entfernen, Teile löschen etc.) und in eine csv Datei exportieren da ich dieses Format für eine andere Anwendung benötigte.

Möglichkeiten und Probleme

Da ich noch keine Ahnung von python hatte habe ich angefangen mir python Code in ChatGPT ausgeben zu lassen in dem ich dort möglichst genaue Fragen zu stellen (in englisch da ich den Eindruck hatte das dann bessere Anwtorten kommen).
Das Ergebniss war eine Aneinanderreihung von einzelnen Aufgaben in python z.B. benenne die Datei um, lösche diese Zellen, extportiere jenen Bereich in eine csv Datei…
Das funktionierte auch ganz gut aber zum Schluss ergab sich ein Problem was dazu führte das ich den Code nochmal umbauen musste.
Ich wollte am Ende eine exe Datei entwickeln die auch andere Excelanwender welche keine python installiert haben, verwenden können. Das ist über den pyinstaller möglich.
Nachdem ich aber diese exe ausgeführt hatte wurde angezeigt das die Excel Datei am Ende nicht mehr geschlossen werden konnte. Da ich die einzelnen Codestücke hintereinander kopiert und nur minimal angepasst hatte wurde die Exceldatei sehr oft geöffnet und geschlossen. Der Fehler tauchte nur beim ausführen der exe auf. Beim debuggen während des programmieren lief alles gut.
Nachdem ich meinen Code umgebaut hatte wurde die Exceldatei nur einmal geöffnet und einmal geschlossen. Damit funktionierte dann auch die exe.

Doku

Um das ganze nicht zu vergessen hier eine kleine Doku der verschiedene Codeteile:

  • try und except: Es hat sich als praktisch erwiesen den Code in einzelne Teile zu gliedern und dafür try und except zu verwenden.
    Es wird versucht einen Teil auszuführen und wenn das aus irgendwelchen Gründen nicht funktioniert wird der Codeabgebrochen und es wird eine Fehlermeldung ausgegeben.

    Beispiel:

    try:
    ***Anweisungen um einen neuen Ordner zu erstellen***
    except:
    ***Der Ordner konnte nicht erstellt werden weil ein Problem auftrat. Gib eine Fehlermeldung aus und überspringe den folgenden Code (sys.exit)
        print(f’Der Ordner „{Neuer_Ordnername}“ konnte nicht erstellt werden.‘)
        sys.exit()

    sys ist eine python Bibliothek und mit sys.exit wird das laufende Programm beendet.

    Ich habe einige der try / except Anweisungen verwendet um gezielte Fehlermeldungen auszugeben wenn Probleme auftreten damit mir der Anwender konkrete Rückmeldungen geben kann.

***IN BEARBEITUNG!!!***

Eine Homepage mit python erstellen?

Nachdem ich die letzten Jahre viel mit WordPress herumgebastelt habe wollte ich wissen ob man auch mit python eine Homepage erstellen kann.
Ich wurde auch prompt fündig und auf den ersten Blick sah es auch gut aus.
Auf den zweiten Blick würde ich das ganze aber nicht Homepage sondern Webanwendung nennen DENN:
Benutzt man z.B. Streamlit entsteht in einer python Datei eine Anwendung die man mit Streamlit in einem Browser anzeigen lassen kann.
Will man diese Homepage im Internet anderen zur Verfügung stellen geht das ganze nicht so einfach den die python Datei kann nicht in einem Browser aufgerufen werden. Man muss also einen Anbieter haben der Python Dateien mit Streamlit interpretieren kann. Laut ChatGPT können das z.B. folgende sein:

  • Streamlit Sharing
  • Heroku
  • Amazon Web Services (AWS)
  • Microsoft Azure
  • Google Cloud Platform (GCP)

Was nicht geht ist z.B. eine Domain mieten und dort seine python streamlit Seite einzurichten wie man z.B. mit WordPress oder anderen CMS System gewohnt ist.

Pakete in python – pip machts möglich

Hier eine kurze Erläuterung der Pakete in python.
In anderen Programmiersprachen und Umgebungen wird auch von Bibliotheken oder Libary’s geredet. Wer also programmiert dem dürfte das Thema nicht fremd sein.
Bei python läuft es so das sich erste mal überlegt was man machen will und sich dann die Pakete zusammensucht in denen das nötige enthalten ist.
Diese Pakete werden oben im python Code angegeben. Im folgenden Beispiel stellt csvHandling das Paket da und wird mit import im python Code angegeben.
import csvHandling
Ist jetzt das Paket noch nicht installiert entstehen beim debuggen Fehler.
Abhilfe schafft es das Paket mit pip zu installieren. Wichtig oder zumindest hilfreich ist bei der Installation von python die Umgebungsvariablen für python eingerichtet zu haben. Ist das der Fall ist es egal in welchem Verzeichniss man sich in der Kommandozeile befindet. Man gibt
pip install csvHandling
ein (um beim oberen Beispiel zu bleiben)
Ist alles richtig eingerichtet installiert pip das Paket und man kann es im python Code verwenden.

Wie können andere meine python Anwendung benutzen?

Python Anwendungen weitergeben

Will man die programmierte Python Anwendung weitergeben damit z.B. andere Exceltabellen konvertieren können (um bei meinem Bespiel mit dem Export von einer Excel- in eine CSV Datei zu bleiben) gibt es verschiedene Möglichkeiten.

Der Anwender installiert python

Eine Möglichkeit ist das der Anwender python mit der Windows Umgebungsvariable installiert wie man selbst als Programmierer. Das ist aber ein eher unschöner Weg da der Anwender ja meist nicht selbst programmieren sondern die python Datei nur verwenden will.

Man erstellt eine exe Datei für den Anwender

Ein besserer Weg ist es für den Anwender eine exe Datei zu erstellen welcher diese dann wie jedes andere Programm verwenden kann.
Dazu muss mit pip beim Programmierer das Paket „pyinstaller“ installiert werden. Mehr Infos zum pyinstaller gibt es unter pyinstaller.org
Hat man seine py Anwendung fertig (hier als Beispiel „ErstelleCSV“) wechselt man in der Kommandozeile in das Verzeichniss in dem die py Datei liegt und gibt z.B. folgendes ein:
pyinstaller –onefile –uac-admin ErstelleCSV.py
Hiermit wird pyinstaller aufgerufen, es wird eine Datei erstellt die mit Adminrechten ausgeführt wird.
Weitere Beschreibungen kann man unter pyinstaller.org finden.

Was ist python und wie bin ich eingestiegen?

Was ist python?

Python ist eine Programmiersprache welche mittlerweile sehr verbreitet ist und für die man viele Infos im Internet finden kann.
Sie ist gut lesbar da sie im Gegensatz zu anderen Programmiersprachen z.B. keine geschweiften Klammern verwendet sondern mit Einrückungen arbeitet. Das macht das programmieren übersichtlicher aber man muss natürlich darauf achten das die Einrückungen passen und genau gesetzt sind ;o)

Wie kam ich zu python?

Ich habe nach einer Möglichkeit gesucht Daten aus einer Exceltabelle zu bearbeiten und sie in eine CSV Datei umzuwandeln um sie in eine SPS Steuerung zu importieren. Da ich mit solchen Anwendungen selten zu tun hatte habe ich mich an frühere Zeiten erinnert wo man solche Aufgaben mit Visual Basic in Excel bearbeitet hat. Damit hatten meine Arbeitskollegen aber in der heutigen Zeit (2024) selten zu tun und ich war auch nicht mehr auf dem aktuellen Stand.
Nach etwas umhören bin ich dann auf python gestoßen mit dem man alles Mögliche an Aufgaben erledigen kann, auch meine Anwendung.

ChatGPT und python

Bekanntlich ist ChatGPT ja ein Chatbot der künstliche Intelligenz einsetzt. Das interessante ist das man dort mit möglichst gezielten Fragen auch „Codeschnipsel“ erzeugen kann die einem weiterhelfen wie z.B. mit der Frage: „Exportiere mit python einen bestimmten Teil einer Exceltabelle in eine CSV Datei“. Am besten stellt man diese Frage in englisch. Hier helfen die Übersetzer von DeepL oder Google ;o)
Man sollte aber die Codeschnipsel von ChatGPT verstehen und nicht blind einsetzen. Am besten formuliert man sie für seine Zwecke um und ordnet sie noch mal neu aber für eine erste Idee ist ChatGPT brauchbar.

Was braucht man für python?

Nach einigen Irrwegen (die ich hier nicht aufführe ;o) hier mein Einstieg in python.
Zuerst muss man python selbst runterladen. Das kann man auf python.org tun. Dort erscheint schon auf der Startseite die aktuelle Version. Das ist Anfang 2024 z.B. eine 3.x Version.
Diese installiert man dann auf seinem Rechner z.B. unter Windows.
ACHTUNG: Bei der Installation würde ich immer alle Haken setzen, speziell darauf achten das die Umgebungsvariablen für Windows angelegt werden. Das hat des Vorteil das beim späteren installieren von Paketen für python mit pip (dazu in andere Beiträgen mehr) nicht darauf geachtet werden muss wo man sich in der Kommandozeile befindet.
Nach Installation steht python zur Verfügung und man braucht nun noch ein Programm in dem man programmieren kann.

Mit welchem Programm kann man python programmieren?

Es gibt es verschiedene Möglichkeiten aber ein nicht zu großes Programm und für Windows gut erhältlich ist „Visual Studio Code“ von Microsoft.
Dieses kann man bei den Tools in Windows finden oder per Google.
Nach dessen Installation muss man noch das python Plugin für Visual Studio Code installieren. Auch hier hilft google oder eine andere Suchmaschine.
Hat man beides installiert kann man python im Visual Studio Code programmieren und debuggen (also nach Fehlern im Code suchen). Auch die Farbgebung beim programmieren und andere Funktionen unterstützen einen gut.

Wie verwende ich die python Dateien?

Beim programmieren entstehen python Dateien mit py am Ende. Hat man auf seinem Rechner python installiert wie oben beschrieben kann man diese Dateien mit einem Doppelklick ausführen.
Beispiel: Will man eine Exceldatei mit python bearbeiten legt man diese Datei im gleichen Ordner wie die python Datei ab und führt die python Datei mit einem Doppelklick aus. Diese erledigt ihre Arbeit was man in dem Kommandozeilenfenster beobachten kann, welches sich öffnet.
Anschließend hat man das Ergebnis z.B. die veränderte Exceldatei im gleichen Ordner.

Alles weitere werde ich in anderen Beiträgen erklären um diesen hier nicht zu lang werden zu lassen.

Zweite Fritzbox als Mesh Repeater einrichten

Nachdem ich heute längere Zeit herum gebastelt habe eine Fritzbox 7490 als Mesh Repeater mit einer Fiber Fritzbox 5530 über Wlan zu verbinden will ich das ganze mal dokumentieren um es in Zukunft wieder hinzubekommen wenn nötig. Vielleicht findet es ja noch jemand hilfreich.

Grundsätzlich gibt es eine Anleitung von AVM die diese auch per Hotline weitergeben. Allerdings finde ich die Anleitung eher missverständlich:

Link zu AVM Fritzbox als Mesh Repeater einzurichten

  1. ACHTUNG: Vor dem zurücksetzen die eventuell schon vorhandene Fritzbox aus dem Mesh Master / Telefon entfernen!
  2. Auf jeden Fall muss, wie auch in der Anleitung beschrieben, die Repeaterbox auf die Werkseinstellung zurück gesetzt werden. Hierfür kann man nach Anleitung vorgehen.
  3. Dann erscheint die FritzBox im Wlan als Fritzbox. Man muss sich mit dieser verbinden und ein neues Passwort vergeben.
  4. Als nächstes legt man fest ob man die Repeaterbox über Wlan oder Kabel, also LAN mit der Masterbox verbunden wird.
    Das stellt man unter Heimnetz => Mesh => Mesh Einstellungen ein.
    Stellt man die Kabelverbindung ein schließt man das Kabel an LAN 1 ein.
    Bei der Wlan Verbindung muss man die Funknetze auswählen und das zugehörige Wlan Passwort eingeben.
    Ich habe beides getestet und nach der Einstellung jeweils die Repeaterbox neu gestartet.
    ACHTUNG: Ab hier wird es interessant. Egal welche man der beiden Einstellungen wählt ist folgendes zu beachten! Nach dem Reboot erscheint die Repeaterbox in der Masterbox in der Mesh Netzwerkübersicht OHNE Mesh Symbol. Damit die Repeaterbox als Meshbox arbeitet und angezeigt wird müssen die Verbindungstasten ein beiden Boxen nacheinander gedrückt werden. Diese Info fehlt in der Anleitung von AVM.
    Beispiel: An der Slavebox 7490 muss die Taste „WLAN WPS“ längere Zeit gedrückt werden bis die LEDs „WLAN“ und „INFO“ blinken. Anschließend muss an der Masterbox 5530 kurz die Taste „Connect / WPS“. Anschließend muss an der 5530 die LED „WLAN / WPS“ DAUERHAFT LEUCHTEN!!!
    Jetzt erscheint die Repeaterbox in der Masterbox auch mit dem Meshsymbol.
  5. Anschließend muss in den oben schon erwähnten Mesh Einstellungen in der Masterbox die Slavebox unter „Telefonieren im Mesh nutzen“ eingerichtet werden damit die Rufnummern auch in der Slavebox erscheinen. Diese müssen dort unter „Telefonie“ => „Eigene Rufnummern“ erscheinen. Tun sie dies nach nach der Einstellung nicht muss das Mesh nochmal neu eingerichtet werden. Die Einrichtung muss legitimiert werden. Ich habe das mit der Authenticator-App gemacht.

Besser erklärt ist das ganze im Video von AVM: