Shebang die 2te

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
zerstep
User
Beiträge: 3
Registriert: Samstag 27. Dezember 2014, 16:14

Hallo Miteinander,

Ich hoffe Ihr hattet ein großartiges Weihnachtsfest! (In der Smilies-Bar fehlt der Weihnachtsmann schade....)

jetzt zum Thema: Ich möchte einen selbstgebackenen Code auf dem Raspberry Pi im Autostart ausführen.
Ich habe schon Crontab, runlevel und Init_d ausprobiert und jetzt festgestellt, dass die shebang auf meinem script nicht funktioniert.

Das Problem: Mein Code läuft auf der IDE Shell Super genau wie "Blink.py" ein Vierzeilen Code um eine LED am GPIO Blinken zu lassen.
Beide Codes haben den Shebang: #!/usr/bin/python3 und chmod a+x und stehen im selben Verzeichnis.

Blink lässt sich aufrufen, mein Code aber, wird mit ":Defekter Interpreter : Datei oder Verzeichnis nicht gefunden" quittiert.
Bei dem Shebang #!/usr/bin/env python3 kommt die Meldung ": Datei oder Verzeichnis nicht gefunden".

Weiß jemand wo der Haken stecken könnte ? :K

Gruß peter
BlackJack

@zerstep: Vielleicht Windows-Zeilenenden oder UTF-8 kodiert mit „byte order mark” (BOM) gespeichert?
zerstep
User
Beiträge: 3
Registriert: Samstag 27. Dezember 2014, 16:14

@ BlackJack,
Danke, dass Du so schnell geantwortet hast. :-))) Gestern dachte ich, antwortet eh keiner mehr.
Das ist eine Idee-
Blink.py habe ich komplett auf dem Raspberry geschrieben. - Also UTF-8.
Meinen Problemcode (mtcp.py) habe ich zuerst auf einem Windows-Rechner mit der Umgebung PyCharm erstellt, aber seit dem Kopieren auf den Raspi, habe ich schon mehrmals Änderungen vorgenommen also auch schon mehrfach mit der IDLE3 gespeichert.
Glaubst Du ich muss den Code im Raspi neu eingeben?
Ich habe gedacht, ich hätte ein Modul geladen, dass den eigenständigen Aufruf des Codes verhindert gibt es sowas?

Gruß Peter
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@zerstep: es geht um die unsichtbaren Zeichen, die von Editoren ignoriert, vom System aber interpretiert werden. In der Windowswelt ist ein Zeilenumbruch standardmäßig zwei Zeichen lang '\r\n', in der Unixwelt dagegen nur eins '\n'. Die erste Zeile in Deinem Programm '#!/usr/bin/python3\r\n' veranlaßt das System nach einer Datei 'python3\r' zu suchen, die es natürlich nicht gibt. Um das zu reparieren gibt es dos2unix.
zerstep
User
Beiträge: 3
Registriert: Samstag 27. Dezember 2014, 16:14

@Sirius3:

Tausend Dank :D
Der Tipp war goldrichtig. Habe dann dos2unix gegoogelt, und mehrere Möglichkeiten gefunden die überflüssigen Zeichen im Zeilenumbruch zu eliminieren.
Und weil mein Raspi gerade offline ist, habe ich den tr-Befehl nehmen müssen:

Code: Alles auswählen

 tr -d '\r' <input.file> output.file
Dank ans Forum und einen guten Rutsch.

Gruß Peter
Antworten