Seite 1 von 1

Deploy für RaspPi4

Verfasst: Mittwoch 30. September 2020, 23:12
von Krie9er
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!

Re: Deploy für RaspPi4

Verfasst: Mittwoch 30. September 2020, 23:21
von Sirius3
Weder noch. Python-Programme werden einfach mit der jeweils installieren Python-Umgebung ausgeführt.

Re: Deploy für RaspPi4

Verfasst: Donnerstag 1. Oktober 2020, 08:25
von sparrow
@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.

Re: Deploy für RaspPi4

Verfasst: Donnerstag 1. Oktober 2020, 22:19
von __blackjack__
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.