Я скачал этот скрипт с именем pyAES.py и поместил его в папку с именем codes, внутри каталога Desktop моего Linux,
Согласно этому примеру, http://brandon.sternefamily.net/2007/06/aes-tutorial-python-implementation/
Когда я печатаю,
./pyAES.py -e testfile.txt -o testfile_encrypted.txt
файл pyAES.py должен быть выполнен. но я получаю эту ошибку,
pi@raspberrypi ~/Desktop/Codes $ pyAES.py
-bash: pyAES.py: command not found
вывод ls -l
команды:
pi@raspberrypi ~/Desktop/Codes $ ls -l
total 16
-rw-r--r-- 1 pi pi 14536 Oct 8 10:44 pyAES.py
Вот что получилось послеchmod +x
pi@raspberrypi ~/Desktop/Codes $ chmod +x pyAES.py pi@raspberrypi ~/Desktop/Codes $
pi@raspberrypi ~/Desktop/Codes $ pyAES.py
-bash: pyAES.py: command not found
pi@raspberrypi ~/Desktop/Codes $
и команда chmod +x pyAES.py && ./pyAES.py
выдает следующую ошибку:
-bash: ./pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory
Я также пробовал переместить файл в /usr/bin
каталог, а затем выполнить его,
pi@raspberrypi /usr/bin $ pyAES.py
-bash: /usr/bin/pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory
pi@raspberrypi /usr/bin $
Я вижу, что файл присутствует в каталоге /usr/bin, но он все равно выдает ошибку «Нет такого файла или каталога».
Я хочу знать, почему терминал Linux не выполняет скрипт Python?
решение1
Кажется, у вас плохо написанная строка shebang. Из ошибки, которую вы получаете:
-bash: /usr/bin/pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory
Я бы сказал, что вам следует установить первую строку /usr/bin/pyAES.py
на
#!/correct/path/to/python
где /correct/path/to/python
можно найти из вывода:
type -P python
В моей системе его /usr/bin/python
нет ./usr/bin/python2
решение2
Ошибка "command not found"
возникает из-за того, что исполняемый файл не существует /bin/
или не /usr/bin/
все пути указаны в $PATH
переменной.
При запуске любой команды внутренняя оболочка ищет исполняемый/двоичный файл в PATH и т. /bin/
/usr/bin/
д .
Поэтому, если путь определен неправильно, вы столкнетесь с этой проблемой.
и когда вы используете " ./command
", то команда будет выполнена из текущего каталога, переменная PATH не используется для поиска имени файла
решение3
Первое препятствие заключается в том, что вам нужно сообщить оболочке, где найти программу. Если вы не укажете никакого каталога, вы сможете запускать только исполняемые файлы, расположенные в пути поиска исполняемых файлов, описанном переменными PATH
окружения. Текущий каталог не находится в пути поиска, если вы не поместите его туда. Поэтому запустите ./pyAES.py
.
Чтобы запустить программу, у вас должны быть разрешения на ее выполнение:
chmod +x pyAES.py
Если вы получаете сообщение типа «плохой интерпретатор: нет такого файла или каталога» или просто «нет такого файла или каталога» для существующего файла, это означает, что в скрипте есть ошибка.притонлиния. (См./bin/sh: ./check-dependencies.pl: не найден — но check-dependencies.pl существует!(для более подробного объяснения.) Строка шебанга является первой строкой сценария и указывает на местонахождение интерпретатора.
Чтобы избежать жесткого кодирования пути к интерпретатору (например, /usr/bin/python
или /usr/local/bin/python
), можно использовать /usr/bin/env
программу как батут:
#!/usr/bin/env python
ПЭП 304указывает, что #!/usr/bin/env python2
это прямое указание на Python 2.x. Однако существует множество существующих систем, где Python 2.x предоставляется только под именем python
и не python2
. Так что вам, возможно, придется выбирать между ними. Если у вас есть права root, а ваш дистрибутив предоставляет Python 2.x только как python
или предоставляет только python2
, создайте символическую ссылку на другое имя.
Если вы видите ошибку «: No such file or directory» (без двоеточия), это означает, что ваша строка shebang имеет возврат каретки в конце, предположительно потому, что она была отредактирована в Windows. Удалите CR: строка shebang должна иметь Unixокончание строки(только перевод строки).
решение4
Я столкнулся с той же ошибкой, когда попыталсяpy file1.py
Решение очень простое, просто введитеpython3 file1.py