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
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!