Deploy für RaspPi4

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Krie9er
User
Beiträge: 22
Registriert: Montag 30. März 2020, 20:06

Hallo Liebe Community, ich habe ein Programm mit PyCharm und einem eigenen virtuellem Envoirnment geschrieben. Nun möchte ich dieses gerne auf meinen RaspPi4 übertragen.

Jetzt fällt mir jedoch mein großer Denkfehler auf: Ich habe mit dem pyinstaller auf einem x86 ubuntu das program erstellt und auf den pi übertragen, hier ist es, verständlicher weise, nicht ausführbar.

Jetzt suche ich nach einer eleganten Lösung wie ich mein x86 Pythonprogramm auf den ARM-Chip vom RaspberryPi portieren kann.

Gibt es hier eine einfache Lösung oder muss ich das Programm auf den PI laden und dort dann mit dem pyinstaller packen?

Gruß und noch einen schönen Abend!
Sirius3
User
Beiträge: 18227
Registriert: Sonntag 21. Oktober 2012, 17:20

Weder noch. Python-Programme werden einfach mit der jeweils installieren Python-Umgebung ausgeführt.
Benutzeravatar
sparrow
User
Beiträge: 4514
Registriert: Freitag 17. April 2009, 10:28

@Krie9er: Warum sollte dein Programm denn portiert werden müssen? Oder nicht auf dem Raspi laufen? Macht _dein_ Programm Dinge, die so nah an der Hardware sind, dass du portieren musst (und das sind Python-Scripte nicht) oder verwendete Drittmodule?

Wenn du schon eine virtuellen Umgebung benutzt, ist doch alles gut. Alles was darin liegt, gehört nicht zu dem was man "verteilt".
Stattdessen legt man eine Datei "requirements.txt" an und schreibt dort die benötigten Module hinein, um sie dann auf dem Zielsystem zu installieren. Im Idealfall lässt man das für sich machen:

Anlegen der Datei auf deinem Entwicklungssystem:

Code: Alles auswählen

pip freeze > requirements.txt
Diese Datei gehört in Repositories bzw. wird mit deinem Programm verteilt.

Auf dem Zielsystem:

Code: Alles auswählen

pip install -r requirements.txt
Und schon installiert dir pip die in der Datei angegebenen Pakete.
Benutzeravatar
__blackjack__
User
Beiträge: 13938
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Nicht vergessen auf dem Quellrechner das venv zu aktivieren vor dem ``pip freeze`` und auf dem Zielrechner ein venv anzulegen und zu aktivieren bevor da was mit ``pip`` installiert wird.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
Antworten