/usr/bin/env Python läuft auf der Befehlszeile, schlägt in der Zeile #! fehl

/usr/bin/env Python läuft auf der Befehlszeile, schlägt in der Zeile #! fehl

Ich versuche, ein Python-Skript ausführbar zu machen, indem ich der ersten Zeile die folgende „Shebang“ hinzufüge:

#!/usr/bin/env python

aber wenn ich die Datei ausführe, erhalte ich:

$ myscript.py
: No such file or directory

Wenn ich die Zeile jetzt envdirekt ausprobiere, funktioniert es:

]$ /usr/bin/env python
Python 2.6 (r26:66714, May  5 2010, 14:02:39)
etc. etc.

Warum schlägt die gleiche Zeile innerhalb der Datei fehl, ist außerhalb aber erfolgreich?

Antwort1

Wahrscheinlich haben Sie irgendwo in Ihrer Shebang-Zeile ein ungültiges Zeichen. Da Sie es eingefügt haben, handelt es sich wahrscheinlich um einen Wagenrücklauf, d. h. Ihre Zeile endet mit einem Zeilenumbruch und einem Wagenrücklauf (oder umgekehrt) – im ODS-Stil des Zeilenumbruchs.

Versuchen Sie, dos2unixin Ihrer Skriptdatei alle Zeilenumbrüche so umzuwandeln, dass sie nur 0x10(UNIX-Stil) sind.

verwandte Informationen