Heim  >  Artikel  >  Backend-Entwicklung  >  Beim Schreiben eines Python-Skripts unter Windows und beim Ausführen unter Linux tritt ein Fehler auf: usr/bin/python^M: bad interpreter: No such file or Directory

Beim Schreiben eines Python-Skripts unter Windows und beim Ausführen unter Linux tritt ein Fehler auf: usr/bin/python^M: bad interpreter: No such file or Directory

PHP中文网
PHP中文网Original
2017-07-14 18:13:191469Durchsuche

Heute habe ich Notepad++ verwendet, um ein Python-Skript unter Windows zu schreiben. Nachdem ich es an den Linux-Server übergeben und ausgeführt hatte, wurde Folgendes angezeigt: -bash: ./logger.py: usr/bin/python^ M: schlechter Interpreter: Keine solche Datei oder kein solches Verzeichnis

1. Ursachenanalyse
Dies wird durch unterschiedliche Systemkodierungsformate verursacht: Die im Windows-System bearbeitete Datei logger.py kann unsichtbare Zeichen enthalten, sodass die obige Ausnahmemeldung gemeldet wird, wenn sie unter dem Linux-System ausgeführt wird. Dies wird im Allgemeinen durch die unterschiedlichen Zeilenendkennungen zwischen Windows und Linux verursacht. In Windows ist das Zeilenendzeichen „rn“, während in Linux das Zeilenendzeichen „n“ ist und ^M das „r“ ist im ASCII-Format.

2.Lösung
1) Konvertieren unter Windows:
Verwenden Sie einige Editoren wie UltraEdit oder EditPlus und andere Tools, um zunächst die Skriptkodierung zu konvertieren und sie dann unter Linux auszuführen. Die Konvertierungsmethode ist wie folgt (UltraEdit): Datei-->Konvertierungen-->DOS->UNIX.
2) Direkter Ersatz unter Linux:
sed -i 's/^M//g' Dateiname, was bedeutet, dass ^M in jeder Zeile des Dateinamens durch / ersetzt wird (beachten Sie, dass ^M unter Linux geschrieben wird und ^M ein Wagenrücklauf- und Zeilenvorschubzeichen ist. Die Eingabe Die Methode besteht darin, STRG+v gedrückt zu halten, v loszulassen und m zu drücken)
3) Es kann auch in Linux konvertiert werden:
Stellen Sie zunächst sicher, dass die Datei über ausführbare Berechtigungen verfügt: chmod a+x Dateiname; ändern Sie dann das Dateiformat: Geben Sie vi Dateinamen ein und verwenden Sie dann den Befehl set ff (oder set fileformat), um das Dateiformat zu überprüfen, das fileformat=dos oder fileformat ist =unix, Verwenden Sie die folgenden Befehle, um das Dateiformat zu ändern: set ff=unix oder :et fileformat=unix; schließlich wq (speichern und beenden)
Führen Sie abschließend die Datei ./filename

aus

Das obige ist der detaillierte Inhalt vonBeim Schreiben eines Python-Skripts unter Windows und beim Ausführen unter Linux tritt ein Fehler auf: usr/bin/python^M: bad interpreter: No such file or Directory. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn