projekt:python_python-umgebung_env_einrichten_vorbereitungen_fuer_projekte_schaffen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| projekt:python_python-umgebung_env_einrichten_vorbereitungen_fuer_projekte_schaffen [2026/02/08 17:27] – torsten.roehl | projekt:python_python-umgebung_env_einrichten_vorbereitungen_fuer_projekte_schaffen [2026/02/22 18:30] (aktuell) – torsten.roehl | ||
|---|---|---|---|
| Zeile 4: | Zeile 4: | ||
| + | //Ein **Python-Environment** (**virtuelle Umgebung**) dient dazu, Projekte voneinander zu trennen. Abhängigkeiten und Bibliotheken werden projektbezogen installiert, | ||
| + | **Dies ist stabiler und professioneller als ohne Umgebung zu arbeiten, da durch Fehlkonfigurationen eventuell das Python-System unbrauchbar gemacht werden könnte.**// | ||
| - | ====== Raspberry-Pi-Kursprojekt: | ||
| - | * erst reines Python | + | {{ : |
| - | * dann Dauerprozess | + | |
| - | * dann Web-API | + | |
| - | * dann Apache davor | + | |
| - | * EIN Projekt, keine Neuentwicklung | + | |
| - | **ENV:** gpio_projects | ||
| - | **Projektpfad: | ||
| + | ===== Überblick ===== | ||
| + | * Voraussetzungen | ||
| + | * Umgebung (Environment) anlegen | ||
| + | * Environment managen | ||
| - | ===== PHASE 1 – Reines Python + GPIO ===== | + | ===== Details |
| - | ==== 0) System vorbereiten | + | ==== Voraussetzungen |
| <code bash> | <code bash> | ||
| sudo apt update | sudo apt update | ||
| Zeile 32: | Zeile 30: | ||
| ---- | ---- | ||
| - | ==== 1) Projektordner | + | ==== Umgebung (Environment) anlegen ==== |
| - | <code bash> | + | Um eine Umgebung |
| - | mkdir -p ~/ | + | |
| - | cd ~/ | + | |
| - | </ | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ==== 2) Virtuelle | + | |
| <code bash> | <code bash> | ||
| - | python3 | + | mkdir -p ~/ |
| - | source gpio_projects/bin/activate | + | cd ~/devel/projects/ |
| - | + | python3 -m venv mein_projekt_env | |
| - | pip install RPi.GPIO | + | |
| </ | </ | ||
| - | ---- | ||
| - | ==== 3) Projektstruktur Phase 1 ==== | ||
| - | < | + | ==== Environment managen ==== |
| - | gpio_projects/ | + | Nach dem Anlegen einer Umgebung muss diese aktiviert werden, um benutzt werden zu können |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | (gpio_env) pi@raspi88: | + | |
| - | . | + | |
| - | ├── gpio_env | + | |
| - | ├── gpio_hw.py | + | |
| - | ├── logic.py | + | |
| - | └── main.py | + | |
| + | === Environment aktivieren === | ||
| + | <code bash> | ||
| + | # Pfad zur venv angeben | ||
| + | source ~/ | ||
| + | </ | ||
| + | === Environment deaktivieren === | ||
| + | <code bash> | ||
| + | deactivate | ||
| </ | </ | ||
| - | ---- | + | === Environment löschen |
| - | + | Zum Löschen reicht es, den Ordner der Umgebung zu entfernen. | |
| - | ==== 4) gpio_hw.py ==== | + | < |
| - | + | rm -rf ~/ | |
| - | < | + | |
| - | import RPi.GPIO as GPIO | + | |
| - | + | ||
| - | PIN = 17 | + | |
| - | + | ||
| - | GPIO.setmode(GPIO.BCM) | + | |
| - | GPIO.setup(PIN, | + | |
| - | + | ||
| - | def on(): | + | |
| - | GPIO.output(PIN, | + | |
| - | + | ||
| - | def off(): | + | |
| - | GPIO.output(PIN, | + | |
| - | + | ||
| - | def status(): | + | |
| - | return GPIO.input(PIN) | + | |
| - | + | ||
| - | def cleanup(): | + | |
| - | GPIO.cleanup() | + | |
| </ | </ | ||
| - | ---- | ||
| - | ==== 5) logic.py ==== | ||
| - | <code python logic.py> | + | ===== Anhang ===== |
| - | import gpio_hw | + | |
| - | def turn_on(): | ||
| - | gpio_hw.on() | ||
| - | return " | ||
| - | def turn_off(): | ||
| - | gpio_hw.off() | ||
| - | return " | ||
| - | def get_status(): | + | ++++ ENV | |
| - | return " | + | < |
| - | </code> | + | |
| - | ---- | + | # [python env] |
| - | ==== 6) main.py ==== | + | ## env anlegen |
| + | cd ~/ | ||
| + | python3 -m venv mein_projekt_env | ||
| - | <code python | + | ## aktivieren |
| - | import logic | + | source ~/ |
| - | import gpio_hw | + | |
| - | print(" | + | ## deaktivieren |
| + | deactivate | ||
| - | try: | + | ## löschen |
| - | while True: | + | cd ~/devel/projects/ |
| - | cmd = input(" | + | rm -rf mein_projekt_env |
| - | if cmd == " | + | |
| - | print(logic.turn_on()) | + | |
| - | elif cmd == " | + | |
| - | print(logic.turn_off()) | + | |
| - | elif cmd == " | + | |
| - | print(logic.get_status()) | + | |
| - | except KeyboardInterrupt: | + | |
| - | pass | + | |
| - | finally: | + | |
| - | gpio_hw.cleanup() | + | |
| - | </ | + | |
| - | ---- | ||
| - | ==== 7) Start Phase 1 ==== | ||
| - | |||
| - | <code bash> | ||
| - | cd ~/ | ||
| - | source gpio_projects/ | ||
| - | python3 main.py | ||
| </ | </ | ||
| + | ++++ | ||
| - | ---- | ||
| - | ===== PHASE 3 – Web später ===== | + | ++++ Verwendete Pakete | |
| - | + | <code bash Liste> | |
| - | <code bash> | + | (course_env) pi@raspi88: |
| - | pip install | + | Package |
| + | ---------- ------- | ||
| + | fastapi | ||
| + | matplotlib 3.10.8 | ||
| + | RPi.GPIO | ||
| + | uvicorn | ||
| + | (course_env) pi@raspi88: | ||
| </ | </ | ||
| - | ---- | + | <code bash Quick Install> |
| - | + | pip install fastapi | |
| - | ===== systemd später mit dieser ENV ===== | + | pip install matplotlib |
| - | + | pip install RPi.GPIO | |
| - | < | + | pip install |
| - | ExecStart=/ | + | |
| </ | </ | ||
| - | + | ++++ | |
| - | ---- | + | |
| - | + | ||
| - | ===== Ergebnis ===== | + | |
| - | + | ||
| - | * ENV = gpio_projects | + | |
| - | * Projekt = ~/ | + | |
| - | * kein raspi_gpio_env mehr | + | |
| - | * konsistent für alle Phasen | + | |
| - | + | ||
projekt/python_python-umgebung_env_einrichten_vorbereitungen_fuer_projekte_schaffen.1770571633.txt.gz · Zuletzt geändert: von torsten.roehl
