Gibt es eigentlich ein kompilierbares Python für Arm? Also so, das man keine extra Firmware aufspielen muss oder sowas, sondern am PC programmieren, rüber auf den Controller..fertig? Wie in Pascal oder C auch?
Moin, Ich hab' keine Ahnung von Python, aber so auf die Schnelle scheints mir da Nuitka zu geben, was so eine Art Compiler fuer Python sein koennte. "Wie bei Pascal und C auch" - das haut ja nicht so ohne weiteres hin. Da brauchst du Crosscompiler, die selbst z.b. auf einem x86 lauffaehig sind und dir executables erzeugen, die dann unter arm lauffaehig sind. Da vermute ich mal, dass nuitka das nicht kann. Aber man kann sich zumindest unter linux was zusammenbasteln, mit dem man auch auf z.b. einer x86 Hardware Binaries "laufen" lassen kann, die z.B. fuer arm gebaut wurden. Dazu brauchts ein statisch gebautes qemu und ein bisschen binfmt "woodoo magic". Damit vermute ich mal, koenntest du dir was zusammenbasteln, wo du auf dem PC was in Python tipperst, das per (arm-)Nuitka uebersetzt und das dann auf deinem arm-Target spielt. Ist aber sicher ein ordentlicher Aufriss. Gruss WK
Ich verstehe nicht wie das mit "keine extra firmware aufspielen" gemeint ist. Micropython läuft auf ARM Cortex Prozessoren und inzwischen auch ein paar anderen Architekturen, braucht halt eine Menge Flash und Ram, zum herumspielen und schnell ausprobieren ists aber genial und deutlich lesbarer und "normaler" als z.B. Forth. Theoretisch ist Micropython als komplette Entwicklungsumgebung auf dem µC verwendbar, benötigt wird nur ein serielles Terminal. Das komplette Python mit Anwendung am PC erstellen und fix fertig in den µC knallen geht aber auch. Micropython läuft auch auf dem PC.
"Micropython läuft auf ARM Cortex Prozessoren und inzwischen auch ein paar anderen Architekturen, braucht halt eine Menge Flash und Ram," ähm..siehst Du und das meine ich.. Genauso wie bei PAscal und C...suche ich Python..was kann mand aran nicht verstehen?! Der Vorposter hatte es doch schon geschrieben..ein fertiges Kompilat suche ich...
Mr.Tom schrieb: > ähm..siehst Du und das meine ich.. > Genauso wie bei PAscal und C...suche ich Python..was kann mand aran > nicht verstehen?! Zum Beispiel den Unterschied zwischen Compiler und Cross-Compiler. Ich kann auf dem PC Code in C oder in Pascal schreiben soviel ich will, das nützt mir für einen ARM-Prozessor rein gar nichts wenn mein Code für einen X86 PC kompiliert wird.
rmu schrieb: > und deutlich > lesbarer und "normaler" als z.B. Forth. Einspruch!! Ob man wirklich diese beiden vergleichen darf, halte ich für fraglich. Aber für mich subjektiv: Forth halte ich für leichter lesbar. Allerdings, wer nicht in UPN denkt, der hat in Forth verschissen. Und ich kann nicht (gut) in den python Einrückungen denken.
Mr.Tom schrieb: > Gibt es eigentlich ein kompilierbares Python für Arm? > Also so, das man keine extra Firmware aufspielen muss oder sowas, > sondern am PC programmieren, rüber auf den Controller..fertig? Das geht natürlich auch nur dann, wenn auf dem Controller ein Betriebssystem läuft. Welches das sein soll, hast Du leider verschwiegen.
also einer hat es bislang verstanden.... Was interesseirt denn das betreiebssystem?!?!? Ich schreiben will Python auf PC flashen auf µc UGH Dann laufen..fertgi verstehen?!
Mr.Tom schrieb: > also einer hat es bislang verstanden.... Du meinst mich? Ja! Verstanden! Kann dir aber nicht helfen, weil ich das Python Zeugs meide. Und Googlen kannst du sicher selber.
meinte eigentlich Dergute....der hat es als einziger verstanden, was ich meinte..ich verstehe nicht wieso das für andere so schwer zu verstehen ist.
Mr.Tom schrieb: > also einer hat es bislang verstanden.... > Was interesseirt denn das betreiebssystem?!?!? > Ich schreiben will Python auf PC flashen auf µc UGH > Dann laufen..fertgi > verstehen?! Du hast gesagt, Du willst "keine extra Firmware aufspielen". Das war etwas missverständlich. Natürlich musst Du Firmware aufspielen, was Du ja in dem Moment tust wo Du das kompilierte Programm vom PC auf den Controller drauf flashst. Du willst also eine Software, die auf dem PC läuft und die aus Python-Quellcode ein lauffähiges Binary für ARM-Prozessoren erzeugt. Inklusive Startup Code, übersetzter Bibliotheken und was man sonst so braucht. Richtig?
Harry L. schrieb: > Python ist ein Interpreter und kein Compiler <loriot mode=on>Ach<loriot mode=off> SCNR, WK
eben, und was hat das jetzt damit zu tun?!? Basic gibt es auch so und so
Mr.Tom schrieb: > Basic gibt es auch so und so "Basic" ist sehr weit gefasst, für einen speziellen, auf compilierbarkeit optimierten Basic-Dialekt ist es auch kein Problem, einen Compiler -> ARM zu bauen. Python hat ein paar Sprachkonstrukte, die sowas erschweren bzw. erfordern, dass der Ziel-µC mehr oder weniger trotzdem einen vollwertigen Python-Interpreter bereithalten muss. https://docs.python.org/2/library/functions.html#eval https://docs.python.org/2/reference/simple_stmts.html#exec _import_ (dynamisches nachladen von modulen) ...
Vielleicht kann PyPy sowas, bin mir nicht 100% sicher: http://pypy.org/features.html > The following CPU architectures are supported and maintained: > x86 (IA-32) and x86_64 > ARM platforms (ARMv6 or ARMv7, with VFPv3) > PowerPC 64bit both little and big endian > System Z (s390x)
:
Bearbeitet durch User
Nicht ganz ein Python-Compiler aber vielleicht ein möglicher Ersatz? Cython (Gefunden im Wikipedia Artikel zu Python.)
Python ist einfach das falsche Werkzeug für diese Aufgabe. Ich verstehe auch nicht, weshalb man auf die Idee kommt, es dafür benutzen zu wollen. Das ist nicht böse gemeint, aber es kommt mir so vor, als wenn jemand mit einem Hammer eine Schraube fest ziehen möchte und sich darüber beklagt, dass es ja auch mit einem Schraubendreher (C) oder sogar mit einer Zange (Basic) geht. Im blödesten Fall hat man sich extra den Umgang mit dem Hammer angeeignet. Und wenn man Hammer richtig kann, dürfte einem auch klar sein, dass Schraube damit nicht geht. Also das ist es auch nicht ... :-/ Wie immer gilt: Beschreib doch mal genau, was Du vor hast. Gruß Jobst
Mark B. schrieb: > Vielleicht kann PyPy sowas, bin mir nicht 100% sicher: Naja: >> All non-x86 versions are only supported on Linux. Ob sich der TE das so vorgestellt hat?
Gab ein paar Anläufe, Python Frontend für GCC. Soweit ich weiss, sind die aber alle wieder eingeschlafen. Damit kämst du schon mal einen grosser Schritt weiter. GCC kann ja den aus verschiedenen Frontends erzeugten Zwischencode zu einem Programm linken.
laßt bitte die Diskussionen nach dem Sinn Zweck und Grund weg, das war nicht Teil der Frage
Nein, gibt es in der von dir gewünschten Form nicht (wenn überhaupt in Richtung Mikrocontroller, dann nur ansatzweise für Embedded Linux). Ist auch ziemlich schwierig und zumindest teilweise sinnlos, weil das Ergebnis wegen der Eigenschaften von Python trotzdem vergleichsweise (C, C++, ...) langsam wäre.
> laßt bitte die Diskussionen nach dem Sinn Zweck und Grund weg
Keine gute Idee.
Python in autark laufenden Maschinencode compilieren haben schon mehrere
versucht. Ist alles wieder eingeschlafen.
Warum eigentlich? Wenn du so etwas haben willst, musst du erst mal
herausfinden, warum alle Versuche eingeschlafen sind.
Mr.Tom schrieb: > laßt bitte die Diskussionen nach dem Sinn Zweck und Grund weg, das war > nicht Teil der Frage Dann lassen wir den Rest am besten auch weg, denn wenn es keinen ersichtlichen Sinn, Zweck oder Grund hat, sollte man es am besten einfach ganz bleiben lassen.
> sollte man es am besten einfach ganz bleiben lassen.
Alles ausprobieren, was sich ausprobieren lässt -- diese Strategie hat
sich doch bewährt. Ab und zu ist mal aus einem Experiment ohne Sinn,
Zweck oder Grund etwas weltbewegendes entstanden.
Gegen Toms Einstellung sollten wir angehen. Dieses "Beantwortet
gefälligst meine Frage und haltet ansonsten eure Klappe!" Diese blinde
Unverschämtheit dürfen wir nicht durchgehen lassen.
> Python für Arm? Ja > kompilierbar? Nein Begründungen wurden genannt (Interpreter). Thread kann geschlossen werden!
Mr.Tom schrieb: > ich verstehe nicht wieso das für andere so schwer zu verstehen > ist. Mr.Tom schrieb: > Dann laufen..fertgi > verstehen?! Mr.Tom schrieb: > laßt bitte die Diskussionen nach dem Sinn Zweck und Grund weg, das war > nicht Teil der Frage Sag mal Mr.Tom, was bist du eigentlich für ein unverschämter Rotzlöffel? Haben deine Eltern dir keine Manieren beigebracht?
In meinem Ersatz-Halbschlaufon steckt auch ein ARM. Und da laueft auch Python drauf. Muss sich also auch fuer ARM koempilieren lassen. In meinem richtigen Schlaufon ists eigentlich genauso. Nennt sich da SL4A. Auch da gibts Python. Vermutlich ist nur dein Zielsystem zu mickrig. Bohr es halt mal ein wenig auf. Dann wird das auch mit Python was.
es geht nicht ums aufbohren sondern es kompiliert zu übertagen, aber wie gesagt, offenbar dauert das dann wohl noch... Und die anderen...owe trauriger Haufen hier.. Wenn ich darauf verweise bei der eigentlichen Diskussion zu bleiben so ausfallen zu werden...kennt man hier ja nicht anders. Und ob ein Thread geschlossen werden kann oder nicht ist wohl nicht eure Entscheidung..womöglich meldet sich in zwei Jahren einer auf diesen Thread und verweist auf ein entsprechendes Programm. Ich habe aber den Eindruck das vielen hier nicht ganz der Sinn und Zweck eines Forums und wie es funktioniert klar ist, wenn ich wie in anderen Threads ständig lese, das man eine Suchmaschine wie Fireball.de etc nehmen soll. Man gewinnt den Eindruck, das das Soziale Kontakten hier weniger ausgeprägt ist.
Mr.Tom schrieb: > es geht nicht ums aufbohren sondern es kompiliert zu übertagen, aber wie > gesagt, offenbar dauert das dann wohl noch... Mimimimimi. Selbermachen. z.B. einen kleinen Python->Arduino Umsetzer. Wenn du Python kannst, ist der in einer halben Stunde weit genug für einen Hello-World-LED-Blinker. Den Arduino-Zwischenschritt kann man soweit verstecken, dass es wie "py -> hex" aussieht, und du hast gleich python->ARM, python->AVR, python->ESP, ... mit erschlagen. Wird eine Menge Python-Konstrukte geben, die man nicht 1:1 abbilden kann. Da muss halt eine saubere Fehlermeldung her, und der Anwender ran zum umformulieren. Viel Erfolg.
Mr.Tom schrieb: > Wenn ich darauf verweise bei der eigentlichen Diskussion zu bleiben so > ausfallen zu werden. Du solltest dich dringend in Selbstreflexion üben.
Mr.Tom schrieb: > Man gewinnt den Eindruck, das das Soziale Kontakten hier weniger > ausgeprägt ist. Naja, Dir ist wohl nicht klar, dass Du hier offensichtlich der Einzige bist, der keine Sozialkompetenz besitzt. Aber wie auch: Um das zu erkennen benötigt man genau diese. https://de.wikipedia.org/wiki/Dunning-Kruger-Effekt Vielleicht solltest Du Dich hier mal anmelden, um Deine zahlreichen, negativen Bewertungen zu sehen. Ich nehme auch an, dass Deine Frage extra mit dem Wissen gestellt ist, dass es keine Lösung dafür gibt, weil sie Unsinn ist und so automatisch eine Diskussion entsteht. Dann kann man immer schön trotzig fordern. Sollte dies wider Erwarten nicht so sein, so liegt bei dem Thema absolute Ahnungslosigkeit vor, was zum einen die Notwendigkeit für Python in Frage stellt und zum anderen auch die Frage nach dem Grund erzwingt, da die Entwicklung offensichtlich in die falsche Richtung läuft. Das lässt dann eigentlich nur folgende 3 Schlüsse zu: - Du hast es Dir in den Kopf gesetzt und willst nicht davon abweichen, weil Du Dich für unfehlbar hältst. - Du hast erkannt, dass es falsch ist, magst den Fehler aber nun nicht mehr zugeben. - Du hast jemandem versprochen, das Du das hinbekommst und stehst doof da, wenn Du nun zurückrudern musst. Du kannst es also drehen und wenden, wie Du möchtest. Also mecker schön weiter - es wird Dir nur wenig bringen. Gruß Jobst
Leute, ich verstehe euch alle nicht, dabei wären die Antworten auf seine Fragen doch so einfach gewesen: > Gibt es eigentlich ein kompilierbares Python für Arm? Nein. > Also so, das man keine extra Firmware aufspielen muss oder sowas, > sondern am PC programmieren, rüber auf den Controller..fertig? Nein. > Wie in Pascal oder C auch? Nein. Keine unnötige Diskussion, keine unnötigen Erklärungen und > womöglich meldet sich in zwei Jahren einer auf diesen > Thread und verweist auf ein entsprechendes Programm. Oder auch nicht. rhf
Karl schrieb: >> Python für Arm? > > Ja > >> kompilierbar? > > Nein > > Begründungen wurden genannt (Interpreter). > Thread kann geschlossen werden! Wenn man es genau nimmt, dann ist das freilich keine Begründung. Es ist durchaus möglich einen Compiler für Python zu schreiben, der aus Python-Quelltext entsprechenden Maschinencode generiert. Ob es so einen Compiler gibt, und noch dazu für ARM, ist eine andere Frage. Aber es ist nicht per se unmöglich.
:
Bearbeitet durch User
Anscheinend kann MicroPython zum Teil das, was Du suchst: https://github.com/micropython/micropython/wiki > What is MicroPython > MicroPython is a Python interpreter (with partial native code compilation > feature). It provides a subset of Python 3.5 features, implemented for > embedded processors and constrained systems. Read more about the > differences to CPython here. Wie weit genau die "partial native code compilation" geht, weiß ich nicht. RTFM. ;-)
Mark B. schrieb: > Wie weit genau die "partial native code compilation" geht, weiß ich > nicht. Das hat mich doch jetzt auch mal interessiert und die Antwort gibt es gewissermaßen hier: https://github.com/micropython/micropython/releases/tag/v1.7 > This release adds the MicroPython cross-compiler that can generate .mpy > files (pre-compiled bytecode) which can be executed within any > MicroPython runtime/VM. [...] Soweit ich das verstanden habe, wird aber (wie sonst auch bei Micropython) sämtlicher Bytecode aus dem RAM ausgeführt. Hier gibt's noch den Diskussionsthread zu einer ähnlichen Anfrage wie der des TO (allerdings etwas klarer formuliert): https://github.com/micropython/micropython/issues/2709 Mr.Tom schrieb: > Also so, das man keine extra Firmware aufspielen muss oder sowas, > sondern am PC programmieren, rüber auf den Controller..fertig? > Wie in Pascal oder C auch? Mr.Tom schrieb: > Genauso wie bei PAscal und C...suche ich Python..was kann mand aran > nicht verstehen?! Mr.Tom schrieb: > Ich schreiben will Python auf PC flashen auf µc UGH > Dann laufen..fertgi > verstehen?! Wie soll man denn jemanden verstehen, der sich ausdrückt wie ein besoffener Fünfjähriger? Kein Mensch kann wissen was du eigentlich willst, weil du es vermutlich selber nicht weißt. Vielleicht meinst du ja ein Python-Kompilat, was ohne Runtime lauffähig ist. Jedenfalls geht das aus > Ich schreiben will Python auf PC flashen auf µc UGH und > Also so, das man keine extra Firmware aufspielen muss oder sowas, > sondern am PC programmieren, rüber auf den Controller..fertig? überhaupt nicht hervor. "flashen auf µc" aber "keine extra Firmware aufspielen". Ja ne, is klar.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.