Maison  >  Article  >  développement back-end  >  Lors de l'écriture d'un script python sous Windows et de son exécution sous Linux, une erreur se produit : usr/bin/python^M : mauvais interpréteur : aucun fichier ou répertoire de ce type

Lors de l'écriture d'un script python sous Windows et de son exécution sous Linux, une erreur se produit : usr/bin/python^M : mauvais interpréteur : aucun fichier ou répertoire de ce type

PHP中文网
PHP中文网original
2017-07-14 18:13:191522parcourir

Aujourd'hui, j'ai écrit un script python en utilisant notepad++ sous Windows Après l'avoir transmis au serveur Linux et l'avoir exécuté, le message : -bash: ./logger.py: usr/bin/python^M. : mauvais interprète : aucun fichier ou répertoire de ce type

1. Analyse des causes
Ceci est dû à différents formats d'encodage du système : le fichier logger.py édité dans le système Windows peut avoir des caractères invisibles, donc le message d'exception ci-dessus sera signalé lors de son exécution sous le système Linux. Cela est généralement dû aux différents identifiants de fin de ligne sous Windows et Linux. Sous Windows, le caractère de fin de ligne est « rn », tandis que sous Linux, le caractère de fin de ligne est « n » et ^M est le « r ». 'en ASCII'.

2.Solution
1) Convertir sous Windows :
Utilisez certains éditeurs tels que UltraEdit ou EditPlus et d'autres outils pour convertir d'abord l'encodage du script, puis l'exécuter sous Linux. La méthode de conversion est la suivante (UltraEdit) : Fichier-->Conversions-->DOS->UNIX.
2) Remplacement direct sous Linux :
sed -i 's/^M//g' nom de fichier, ce qui signifie remplacer ^M dans chaque ligne du nom de fichier par / (notez que ^M est écrit sous Linux et ^M est le caractère de retour chariot et de saut de ligne. La méthode de saisie consiste à appuyer et à maintenir CTRL+v, relâcher v, appuyer sur m)
3) Il peut également être converti sous Linux :
Assurez-vous d'abord que le fichier dispose des autorisations exécutables : chmod a+x filename ; puis modifiez le format du fichier : entrez vi filename, puis utilisez la commande set ff (ou set fileformat) pour vérifier le format de fichier, qui est fileformat=dos ou fileformat. =unix, Utilisez les commandes suivantes pour modifier le format du fichier : set ff=unix ou :et fileformat=unix; enfin wq (enregistrer et quitter)
Enfin, exécutez le fichier ./filename

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn