Ответ 1
Установите разделитель строк на Unix:
Невозможно выяснить, где изменить EOF в PyCharm. Мои скрипты начинаются с:
#!/usr/bin/python
# -*- coding: utf-8 -*-
Выводит что-то вроде этого, когда я пытаюсь запустить его как исполняемый файл (chmode + x):
- bash:./main.py:/usr/bin/python ^ M: плохой интерпретатор: нет такого файла или каталога
Что делать и как быть?
Установите разделитель строк на Unix:
Проблема не EOF, а EOL. Оболочка видит a ^ M, а также конец строки и, таким образом, пытается найти /usr/bin/python^M
.
Обычный способ войти в это состояние - отредактировать файл python с помощью редактора MSDOS/Windows, а затем запустить в Unix. Самое простое решение - запустить dos2unix в файле или отредактировать файл в редакторе, который явно разрешает сохранение в конце строк Unix.
Здесь вы можете найти ответы: ./configure:/bin/sh ^ M: плохой интерпретатор
Как пользователь Mac OS X, я не нашел команду dos2unix
. Кроме того, я использую vi/vim: :set fileformat=unix
, а затем сохраняю файл :wq
вы можете попробовать dos2unix <filename>
Установить dos2unix: sudo apt-get install dos2unix
и пусть он делает магию: dos2unix FILENAME
Если вы используете Vim, просто введите следующую команду:
:set fileformat=unix
Для MacOS вы можете установить его через Homebrew следующим образом:
brew install dos2unix
И далее сделайте
dos2unix FILENAME
Похоже на сообщение Цзянвэй Ю. В UNIX/Linux я использовал vi для редактирования файла Python. Используя vi, вы можете увидеть ^ M в конце каждой строки.
Найдите следующую строку /usr/bin/python^M
Нажмите end
, чтобы попасть в конец строки
Нажмите delete
, чтобы удалить ^ M
Чтобы сохранить файл и завершить работу, введите: :wq
Это сработало для меня.
вы можете попробовать:
sed --in-place 's/^M//g' main.py
[набрать ^ M, нажать ctrl + v, ctrl + m]
Только вопрос формата для победы и unix:
команда try: dos2unix имя_файла
После повторного запуска он должен работать