tutorial org guide developing python interpreter eof pycharm

org - PyCharm./usr/bin/python ^ M: intérprete incorrecto



python guide (10)

El problema no es EOF sino EOL. El intérprete de comandos ve una ^ M así como también el final de la línea y trata de encontrar /usr/bin/python^M

La forma habitual de entrar en este estado es editar el archivo python con un editor MSDOS / Windows y luego ejecutarlo en Unix. La solución más simple es ejecutar dos2unix en el archivo o editar el archivo en un editor que permita guardar de forma explícita con el fin de líneas de Unix.

Esta pregunta ya tiene una respuesta aquí:

No se puede averiguar dónde cambiar EOF en PyCharm. Mis scripts, comenzaron con:

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

Produce algo como esto, cuando intento ejecutarlo como ejecutable (chmode + x):

-bash: ./main.py: / usr / bin / python ^ M: intérprete incorrecto: no existe tal archivo o directorio

¿Qué hacer y cómo ser?


Establecer separador de línea a Unix :


Instalar dos2unix: sudo apt-get install dos2unix

y deja que haga la magia: dos2unix FILENAME


Para MacOS puede instalarlo a través de Homebrew esta manera:

brew install dos2unix

Y luego haz

dos2unix FILENAME


Puede encontrar las respuestas aquí: ./configure: / bin / sh ^ M: mal intérprete

Como usuario de Mac OS X, no encontré el comando dos2unix . Alternativamente, utilizo vi / vim:: :set fileformat=unix y luego :wq el archivo :wq


Si está usando Vim, solo ingrese el siguiente comando:

:set fileformat=unix


Similar a la publicación de Jiangwei Yu. En UNIX / Linux, utilicé vi para editar el archivo de Python. Usando vi, puedes ver el ^ M al final de cada línea.

Encuentre la siguiente línea /usr/bin/python^M

Hit end para llegar al final de la línea

Pulse delete para eliminar el ^ M

Para guardar el archivo y salir, escriba :wq

Esto funcionó para mí.


Solo una cuestión de formato entre win y Unix:

try comando: dos2unix fileName

Después de que se ejecute de nuevo, debería funcionar


es posible que desee probar dos2unix <filename>


puedes intentar hacer esto:

sed --in-place ''s/^M//g'' main.py

[para ingresar ^ M, presione ctrl + v, ctrl + m]