/ usr / bin / env: 'python3 \ r': нет такого файла или каталога [дубликат]

Я пытаюсь сделать мои файлы .py исполняемыми, чтобы я мог запускать их с помощью ./ filename.py , но у меня это не работает.

Я добавил shebang #! / Usr / bin python3 и использовал команду chmod + x filename.py . Когда я запускаю ./ filename.py , то как обычный пользователь я получаю сообщение об ошибке ниже

bash: ./filename.py: /usr/bin: bad interpreter: Permission denied

Как суперпользователь, он вместо этого сообщает мне следующее:

sudo: unable to execute ./filename.py: Permission denied

Открытие файла обычным способом ( python3 filename.py ) работает нормально.

Когда я изменил шебанг на #! / Usr / bin / env python3 , он сказал мне следующее:

/usr/bin/env: ‘python3\r’: No such file or directory
5
задан 27 March 2017 в 08:35

1 ответ

Проблемой являются Ваши конечные символы строки. Ваш файл был создан или отредактирован в системе Windows и использует окончания строки Windows/DOS-style (CR+LF), тогда как системы Linux как Ubuntu требуют окончаний строки стиля Unix (LF).

существует простой инструмент, который может преобразовать два различных стиля для Вас, звонил dos2unix.

Установка это путем выполнения

sudo apt install dos2unix

После этого, можно преобразовать файлы в любом направлении с помощью одной из команд

dos2unix /PATH/TO/YOUR/WINDOWS_FILE
unix2dos /PATH/TO/YOUR/LINUX_FILE

Пример:

$ cat test.py 
#!/usr/bin/env python3
print("ok")

$ ./test.py 
/usr/bin/env: ‘python3\r’: No such file or directory
$ dos2unix test.py 
dos2unix: converting file test.py to Unix format ...
$ ./test.py 
ok
<час>

, Чтобы также возвратиться к тому, что Вы попробовали сначала строка хижины

#!/usr/bin python3

является, конечно, неправильной. Это пытается выполнить файл /usr/bin с python3 и имя файла Вашего сценария как аргументы. Это должно, очевидно, перестать работать, потому что /usr/bin каталог и никакой исполняемый файл.

15
ответ дан 23 November 2019 в 08:42

Другие вопросы по тегам:

Похожие вопросы: