66 votes

"/usr/bin/python^M : mauvais interprète"

Je n'arrive pas à trouver où changer l'EOF dans PyCharm. Mes scripts commencent par :

#!/usr/bin/python
# -*- coding: utf-8 -*-

Le résultat est le suivant lorsque j'essaie de l'exécuter comme un exécutable ( chmode +x ) :

-bash : ./main.py : /usr/bin/python^M : mauvais interprète : No such file or directory

4 votes

Il semble qu'il y ait ^M dans le script, utilisez dos2unix

0 votes

Il semble que le fichier original ait été créé sous MSDOS/Windows sans support de fin de ligne UNIX/Linux. Ainsi, lorsque vous avez essayé d'exécuter ce fichier sous UNIX/Linux, vous avez obtenu une erreur. La solution la plus simple consiste à recréer le fichier sous UNIX/Linux. La solution évolutive consiste à configurer l'interpréteur de commandes MSDOS/Windows pour qu'il prenne en charge l'enregistrement des fins de ligne sous UNIX/Linux. Cela vous aidera à créer et à réutiliser des fichiers sur les deux systèmes.

55voto

Mark Points 21191

Le problème n'est pas EOF mais EOL. L'interpréteur de commandes voit un ^M ainsi que la fin de la ligne et essaie donc de trouver /usr/bin/python^M .

La façon habituelle de se retrouver dans cet état est d'éditer le fichier python avec un éditeur MSDOS/Windows, puis de l'exécuter sous Unix. La solution la plus simple est d'exécuter dos2unix sur le fichier ou d'éditer le fichier dans un éditeur qui autorise explicitement la sauvegarde avec des fins de lignes Unix.

0 votes

Je pense que l'interpréteur python ne fonctionne pas du tout. L'interpréteur shebang échoue sur ^M.

0 votes

Oui, désolée, la coquille est voir l'ingthis

3 votes

Si vous n'avez pas dos2unix, exécutez simplement sudo apt-get install dos2unix dans Ubuntu 14.04.

38voto

CrazyCoder Points 103123

Régler le séparateur de ligne sur Unix :

Unix

3 votes

Si le fichier a déjà été enregistré, cela ne semble pas utile. Probablement seulement avec les nouveaux fichiers ? Vous devez utiliser la fonction dos2unix pour ces fichiers.

33voto

Jiangwei Yu Points 89

Vous trouverez peut-être les réponses ici : ./configure : /bin/sh^M : mauvais interprète

En tant qu'utilisateur de Mac OS X, je n'ai pas trouvé la commande dos2unix . Sinon, j'utilise vi/vim : :set fileformat=unix puis enregistrer le fichier :wq

25voto

Vitaly Isaev Points 426

Si vous utilisez Vim, entrez simplement la commande suivante :

:set fileformat=unix

16voto

gefei Points 7319

Vous pouvez essayer dos2unix <filename>

1 votes

Note. Pour l'installer, il suffit de sudo yum install dos2unix. il est dans le repos.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X