Compilen auf Raspberry Pi

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
SpicySynek
User
Beiträge: 10
Registriert: Mittwoch 13. Dezember 2017, 11:14

Montag 15. Januar 2018, 09:30

Hallo Leute,

habe folgendes Problem, dass ich meinen Code auf dem Raspberry Pi in dem IDE Thonny geschrieben habe und diesen Code jetzt compilen möchte um so eine ausführbare Datei zu haben und das ganze nicht immer über die Entwicklungsumgebung zu öffnen. Nur finde ich in Thonny keinen Hinweis darauf, wo und wie ich diesen Code compilen kann. Muss ich dafür ein weiteres Programm mit Entwicklungsumgebung installieren, welches mich den Code compilen lässt; und muss ich dieses Programm dann auf allen weiteren Geräten installieren, auf denen das Programm laufen soll?

Ich danke im Vorraus für jegliche Hilfe!
Es grüßt,
Spicy
Sirius3
User
Beiträge: 8412
Registriert: Sonntag 21. Oktober 2012, 17:20

Montag 15. Januar 2018, 09:49

@SpicySynek: Du mußt gar nichts compilieren. Programme startet man einfach von einer Konsole:

Code: Alles auswählen

$ my_program.py
Dazu muß das Programm als erste Zeile ein Shebang haben:

Code: Alles auswählen

#!/usr/bin/env python3
und als ausführbar markiert sein.

Da auf jedem Raspi Python installiert ist, ist es auch auf allen ohne weitere Installation lauffähig.
SpicySynek
User
Beiträge: 10
Registriert: Mittwoch 13. Dezember 2017, 11:14

Montag 15. Januar 2018, 10:14

Danke für die rasche Antwort,
in der Konsole kommt die Meldung:
bash: .py: Kommando nicht gefunden.
Zudem habe ich mich schonmal darüber informiert, dachte aber, dass das eine umständliche Art dessen ist, was andere Programme könnten. Habe es mit folgendem versucht, ...

Code: Alles auswählen

python my_programm.py
... aber bekomme hier auch folgende Fehlermeldung:
SyntaxError: Non-ASCII character '\xc3' in file my_programm.py on line 42, but no encoding declared, see http://python.org/... for details
Muss man hier vielleicht auch die Imports beachten die man eingefügt hat? Ich finde im Internet leider nichts g´scheites.
Mit der Änderung das ganze zu einer ausführbaren Datei zu machen, ist es ja möglich das Programm ohne Entwicklungsumgebung zu öffnen, nur möchte ich allerdings diese und alle weiteren Möglichkeiten ausschließen.
narpfel
User
Beiträge: 227
Registriert: Freitag 20. Oktober 2017, 16:10

Montag 15. Januar 2018, 10:46

@SpicySynek: Benutzt du Python 2 oder Python 3? Wenn du Python 2 benutzt, dann musst du, wie in dem Link aus deinem SyntaxError beschrieben, ein Encoding deklarieren, wenn du Nicht-ASCII-Zeichen im Quelltext verwendest.

Wenn du Python 3 benutzt, dann muss das Encoding nicht deklariert werden, wenn man UTF-8 benutzt, und zum Ausführen muss `python3` benutzt werden.

Zu deiner Bash-Fehlermeldung müsstest du auch deine Eingabe zeigen, weil das, was Sirius3 beschrieben hat, funktioniert.

Deinen letzten Satz verstehe ich nicht: Du möchtest es ausschließen, dass man dein Programm ohne IDE starten kann? Oder per IDE?
SpicySynek
User
Beiträge: 10
Registriert: Mittwoch 13. Dezember 2017, 11:14

Montag 15. Januar 2018, 11:18

Also da ich Python3 benutzen, hat das wie oben beschrieben funktioniert - Danke dafür!
Ich möchte ausschließen, dass man das Programm per IDE öffnet, d.h. wenn ich die Datei des Programmes auf meinem Desktop öffne, sollen keine weiteren Optionen verfügbar sein das Programm zu öffnen, weder in Terminal, noch in der IDE Umgebung. Im Prinzip wie eine einfache .exe auf Windows. Durch diverse andere Entwicklungsprogramme für Programmiersprachen, dachte ich, dass das durchs Compilen erzeugt wird.

Grüße
Spicy
narpfel
User
Beiträge: 227
Registriert: Freitag 20. Oktober 2017, 16:10

Montag 15. Januar 2018, 11:25

@SpicySynek: Die gängigen Dateimanager unter Linux können so eingestellt werden, dass sie bei einer ausführbaren Textdatei (`chmod +x ...`) nachfragen, ob die Datei ausgeführt, im Terminal ausgeführt oder angezeigt werden soll. Alternativ kann man eine `.desktop`-Datei erstellen, die das Programm startet.
__deets__
User
Beiträge: 3477
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 15. Januar 2018, 12:03

SpicySynek hat geschrieben:Also da ich Python3 benutzen, hat das wie oben beschrieben funktioniert - Danke dafür!
Ich möchte ausschließen, dass man das Programm per IDE öffnet, d.h. wenn ich die Datei des Programmes auf meinem Desktop öffne, sollen keine weiteren Optionen verfügbar sein das Programm zu öffnen, weder in Terminal, noch in der IDE Umgebung. Im Prinzip wie eine einfache .exe auf Windows. Durch diverse andere Entwicklungsprogramme für Programmiersprachen, dachte ich, dass das durchs Compilen erzeugt wird.
Geht es dir dabei nur um die Ausfuehrbarkeit, oder auch um den Schutz vor Betrachtung/Veraenderung?

Wenn letzteres, kannst du dein Programm auch als .pyc-Datei ausliefern. Allerdings geht das nicht fuer das Start-Skript selbst, das braucht einen shebang & lesbaren Python-code.
harryberlin
User
Beiträge: 194
Registriert: Donnerstag 17. Dezember 2015, 12:17

Samstag 21. April 2018, 21:09

zudem kann man das .pyc recht einfach wieder "dekompilieren".
python ist keine sprache, um seinen code zu verbergen.
empty Sig
Benutzeravatar
DeaD_EyE
User
Beiträge: 218
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Dienstag 24. April 2018, 12:47

Wenn du ausführbare Dateien erstellen möchtest, die ohne vorinstallierten Python-Interpreter lauffähig sein sollen, solltest du dir dieses Projekt mal ansehen: https://www.pyinstaller.org

Nicht wundern, wenn die ausführbaren Dateien dann 18 MiB groß sind. Das ist normal, da ja der Code nicht nach C übersetzt wird, sondern weiterhin als Python Code ausgeführt wird. Der Interpreter mit mit in der ausführbaren Datei gepackt. Deswegen ist das Verzeichnis bzw. die Ausführbare Deatei ziemlich groß.

Ein andere Projekt, dass nach C++ umwandelt, ist nuitka (russischer Kosename): http://nuitka.net/
sourceserver.info - sourceserver.info/wiki/ - Support für HL2-Server
Antworten