Impossible de savoir où changer EOF dans PyCharm . Mes scripts, commençant par:
#!/usr/bin/python
# -*- coding: utf-8 -*-
Sort quelque chose comme ceci, quand j'essaye de l'exécuter comme exécutable (chmode + x):
-bash: ./main.py:/usr/bin/python ^ M: interpréteur incorrect: aucun fichier ni répertoire de ce type
Que faire et comment être?
Définissez le séparateur de lignes sur Unix :
Le problème n’est pas EOF mais EOL. Le shell voit un ^ M ainsi que la fin de la ligne et essaie donc de trouver /usr/bin/python^M
.
La manière habituelle d'entrer dans cet état consiste à éditer le fichier python avec un éditeur MSDOS/Windows, puis à l'exécuter sous Unix. La solution la plus simple consiste à exécuter dos2unix sur le fichier ou à l'éditer dans un éditeur qui autorise explicitement l'enregistrement avec les fins de lignes Unix.
Vous pouvez trouver les réponses ici: ./configure:/bin/sh ^ M: mauvais interprète
En tant qu'utilisateur Mac OS X, je n'ai pas trouvé la commande dos2unix
. Sinon, j'utilise vi/vim: :set fileformat=unix
puis enregistre le fichier :wq
vous voudrez peut-être essayer dos2unix <filename>
Si vous utilisez Vim, entrez simplement la commande suivante:
:set fileformat=unix
Installer dos2unix: Sudo apt-get install dos2unix
et laissez-le faire la magie: dos2unix FILENAME
Pour MacOS, vous pouvez l'installer via Homebrew comme ceci:
brew install dos2unix
Et ensuite faire
dos2unix FILENAME
Semblable au poste de Jiangwei Yu. Sous UNIX/Linux, j’utilisais vi pour éditer le fichier Python. En utilisant vi, vous pouvez voir le ^ M à la fin de chaque ligne.
Trouvez la ligne suivante /usr/bin/python^M
Appuyez sur end
pour atteindre la fin de la ligne
Appuyez sur delete
pour supprimer le ^ M
Pour enregistrer le fichier et quitter, tapez: :wq
Cela a fonctionné pour moi.
vous pouvez essayer de faire ceci:
sed --in-place 's/^M//g' main.py
[pour taper ^ M, appuyez sur ctrl + v, ctrl + m]
Juste une question de format entre win et unix:
essayez la commande: dos2unix fileName
Après le redémarrage, ça devrait marcher