Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Unix

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

Установить dos2unix: sudo apt-get install dos2unix

и пусть он делает магию: dos2unix FILENAME

Ответ 6

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

:set fileformat=unix

Ответ 7

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

brew install dos2unix

И далее сделайте

dos2unix FILENAME

Ответ 8

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

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

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

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

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

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

Ответ 9

вы можете попробовать:

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

[набрать ^ M, нажать ctrl + v, ctrl + m]

Ответ 10

Только вопрос формата для победы и unix:

команда try: dos2unix имя_файла

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