Seite 1 von 1

Shebang die 2te

Verfasst: Samstag 27. Dezember 2014, 17:48
von zerstep
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

Re: Shebang die 2te

Verfasst: Samstag 27. Dezember 2014, 18:13
von BlackJack
@zerstep: Vielleicht Windows-Zeilenenden oder UTF-8 kodiert mit „byte order mark” (BOM) gespeichert?

Re: Shebang die 2te

Verfasst: Sonntag 28. Dezember 2014, 10:58
von zerstep
@ 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

Re: Shebang die 2te

Verfasst: Sonntag 28. Dezember 2014, 11:13
von Sirius3
@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.

Re: Shebang die 2te

Verfasst: Sonntag 28. Dezember 2014, 13:17
von zerstep
@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