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í:
- ./configure: / bin / sh ^ M: bad intérprete [duplicado] 15 respuestas
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]