it-swarm.com.ru

PyCharm./usr/bin/python ^ M: плохой интерпретатор

Не могу понять, где изменить EOF в PyCharm . Мои скрипты, начались с:

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

Выводит что-то вроде этого, когда я пытаюсь запустить его как исполняемый файл (chmode + x):

-bash: ./main.py:/usr/bin/python ^ M: плохой интерпретатор: нет такого файла или каталога

Что делать и как быть?

44
woozly

Установите разделитель строк в Unix :

Unix

30
CrazyCoder

Проблема не в EOF, а в EOL. Оболочка видит ^ M, а также конец строки и пытается найти /usr/bin/python^M.

Обычный способ попасть в это состояние - отредактировать файл python с помощью редактора MSDOS/Windows, а затем запустить в Unix. Самое простое решение - запустить dos2unix для файла или отредактировать файл в редакторе, который явно позволяет сохранять в конце строки Unix.

37
Mark

Вы можете найти ответы здесь: ./configure:/bin/sh ^ M: плохой переводчик

Как пользователь Mac OS X, я не нашел команду dos2unix. В качестве альтернативы я использую vi/vim: :set fileformat=unix и затем сохраняю файл :wq

20
Jiangwei Yu

вы можете попробовать dos2unix <filename>

11
gefei

Если вы используете Vim, просто введите следующую команду:

:set fileformat=unix
10
Vitaly Isaev

Установите dos2unix: Sudo apt-get установите dos2unix

и позвольте ему творить чудеса: dos2unix FILENAME

7
vatsa

Для MacOS вы можете установить его через Homebrew вот так:

brew install dos2unix

И дальше делать 

dos2unix FILENAME
3
Vinozio

Похоже на пост Jiangwei Yu. В UNIX/Linux я использовал vi для редактирования файла Python. Используя vi, вы можете увидеть ^ M в конце каждой строки. 

Найдите следующую строку /usr/bin/python^M

Нажмите end, чтобы добраться до конца строки

Нажмите delete, чтобы удалить ^ M

Чтобы сохранить файл и выйти, введите: :wq

Это сработало для меня.

2
SomeGuyOnAComputer

вы можете попробовать сделать это:

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

[чтобы ввести ^ M, нажмите Ctrl + V, Ctrl + M]

1
karthik ts

Просто вопрос формата между win и unix:

попробуйте команду: dos2unix fileName

После того, как он запустится снова, он должен работать

0
vivi