Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Tipps zu Python und Webserver mit Python
Python Web-Frameworks
- Python Flask - Kurze Einführung von ITBH Sommer Semester 2019
- Flask Tutorial - How to make a WEB application using Flask in python 3 in Deutsch
- Django - Beliebtes Framework WEB-Framework
MySql
Flask
- Flask 2.0.x - Flask User Guide
CAN-Data Visualizer
Python Libs
NumPy
pandas
matplotlib
Virtual Env
python env
sudo apt-get install python3-venv mkdir dev/test1 # Projekt-Ordner anlegen und in diesen wechseln cd dev/test1 python3 -m venv venv # die virtuelle Umgebung erzeugen (Ordner) source venv/bin/activate # und aktivieren .... deactivate # und wieder verlassen.
und für die Installation von flask, matplotlib, pandas und numpy wurden noch folgendes benötigt: - sudo apt-get install libjpeg-dev zlib1g-dev (damit pillow wegen matplotlib installiert werden kann)
History Installation
2017 source venv/bin/activate 2018 pip3 list 2019 python3 --version => Python 3.6.9 2020 python3 -m pip install numpy ** 2021 python3 -m pip install matplotlib ** 2022 python3 -m pip install wheel => war dies wirklich notwendig? keine Ahnung 2023 python3 -m pip install matplotlib ** 2024 sudo apt-get install libjpeg-dev zlib1g-dev 2025 python3 -m pip install matplotlib ** 2029 python3 -m pip install pandas ** 2031 python3 -m pip install flask ** 2032 flask --help ** = das sind die eigentliche benötigte Pakete! Die anderen werden im Fehlerfall benötigt
Hinweise WSL2 Ubuntu18.04:
- kommt die Meldung mit library oder headerfiles „zlib not found“ dann muss noch
sudo apt-get install zlib1g-dev
installiert werden
- kommt no library oder Header found for: jpeg
sudo apt-get install libjpeg-dev
installiert werden.
- und bei:
ModuleNotFoundError: No module named 'setuptools_rust' * Start in WSL am besten mit:<code>flask run -h 0.0.0.0
Hierfür muss auch die Umgegungsvariable gesetzt sein: export FLASK_APP=app.py oder das Python-Skript ausführbar machen und direkt aufrufen und dann die Parameter in main ändern.
dann: pip install -U pip setuptools ausführen</code>
um SSL zu aktivieren war folgendes noch notwendig:
2051 python3 -m pip install cryptography 2052 pip install -U pip setuptools 2053 python3 -m pip install cryptography
damit es dann bei app.run mit dem Kontext: „ ssl_context='adhoc',“ als SSL läuft.
if __name__ == "__main__": app.run(port = 8089, host = "0.0.0.0", ssl_context='adhoc', debug = True) * Running on https://83.219.65.212:8889/ Und hier zum Abschluss noch die Requirements, so das meine Flask App läuft:<code>(venv) andreas@h2859785:~/dev/flask$ cat requirements.txt cffi==1.15.0 click==8.0.3 cryptography==36.0.0 cycler==0.11.0 dataclasses==0.8 Flask==2.0.2 importlib-metadata==4.8.2 itsdangerous==2.0.1 Jinja2==3.0.3 kiwisolver==1.3.1 MarkupSafe==2.0.1 matplotlib==3.3.4 numpy==1.19.5 pandas==1.1.5 Pillow==8.4.0 pkg_resources==0.0.0 pycparser==2.21 pyparsing==3.0.6 python-dateutil==2.8.2 pytz==2021.3 six==1.16.0 typing_extensions==4.0.1 Werkzeug==2.0.2 zipp==3.6.0
conda
VS-Code Remote Debugging Flask
Um eine Flask Applikation zu Debuggen (Remote) sind folgende Schritte erforderlich:
- Eine SSH Remote Verbindung zum Server einrichten
- VS-Code Remote Extension Pack installieren.
- Die SSH Konfiguration für den Remote Server sollte dann so aussehen:
Host mydomain.de HostName mydomain.de User andreas ForwardAgent yes IdentityFile C:\Users\Andreas\.ssh\id_rsa
- Wenn mit einer virtuellen Python Umgebung auf dem Server gearbeitet wird muss man diese in vscode auch einrichten:
- Da ich Pyhton venv verwende, wurde bei mir die settings.json mit folgendem Eintrag erzeugt: (STRG+Shift+P ⇒ Select Python Interpreter ⇒ Pfad zur virtuelle Python Umgebung angeben)
{ "python.pythonPath": "/home/andreas/dev/flask/venv/bin/python" }
oder
{ "python.pythonPath": "/home/pi/dev/flask/venv/bin/python" }
- Beim Starten der Debugsitzung wird der lokale Server Port auf den lokalen Port vom Host umgeleitet.
(venv) andreas@mydomain.de:~/dev/flask/flaskCanGraph$ cd /home/andreas/dev/flask/flaskCanGraph ; /usr/bin/env /home/andreas/dev/flask/venv/bin/python /home/andreas/.vscode-server/extensions/ms-python.python-2021.12.1559732655/pythonFiles/lib/python/debugpy/launcher 43491 -- -m flask run --no-debugger --no-reload * Serving Flask app 'app.py' (lazy loading) * Environment: development * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
- vscode Konfigurations Files für Flask Remote Debugging:
Sonstige Hinweise:
- Python Plug-in muss installiert sein (die Abfrage kommt automatisch, falls es noch nicht installiert ist wenn einen Python-Datei geöffnet wird.
- Eventuell noch den Compiler Auswählen mit: CTRL+SHIFT+P ⇒ „python: Select interpreter“ ⇒ aus dem venv auswählen
- Beim Starten vom Debuggen kann man auswählen, ob die Vorschau im Editor (vereinfachter Browser) erfolgen soll. Falls dieser gewählt wurde, kann aber nicht HTTPS verwendet werden
VS-Code Remote Programmieren/Debugging
Hier wird nochmal das Einrichten von vscode für Remote Programmierung / Debugging mit dem Raspi erklärt. (C-Programmierung):
- Eine SSH Remote Verbindung zum Server einrichten
- „connect to Host“ auswählen (links unten in der Statusleiste auf das Verbindungssymbol klicken
- Im Pop-Up dann „add new SSH-Host“ auswählen und folgendes eintragen:
„ssh pi@192.168.178.84 -A“ - dann das bestehende ssh-Config file auswählen
- ⇒ Meldung das der neue host hinzugefügt wurde, bzw neue Datei anlegen.
- Am besten dann noch edit Config-File auswählen und die Einträge kontrollieren (IdentityFile muss von Hand hinzugefügt werden)
IdentityFile C:\Users\Andreas\.ssh\id_rsa
damit das SSH-Key Pair Verfahren für den Login verwendet wird. Ansonsten muss man das Passwort von Benutzer „pi“ verwenden.
Pfad von „config“-File: C:\Users\Andreas\.ssh - Ebenso kann die IP in der config-Datei durch einen Klartextnamen ersetzt werden. Hier mal meine config-datei:
Host Raspi HostName 192.168.178.84 User pi ForwardAgent yes IdentityFile C:\Users\Andreas\.ssh\id_rsa
Etwas verwirrend ist, dass HostName die Recheradresse ist, und Host der „Name“
- Nun mit „Connect to host“ die Verbindung aufbauen dazu in den PopUps „Linux“ auswählen und die Passphrase vom SSH-Key eingeben.
Der erste Startup dauert etwas länger, da der Raspi erst mal den vscode Server runterladen muss.