Почему скрипт python с разрешением выполнения не запущен на Ubuntu?

У меня есть сценарий / приложение / программа, написанная на python 3. Я загрузил его в свой Ubuntu и изменил разрешение, чтобы разрешить выполнение всеми. Я могу запустить python myapp.py без проблем, но я не могу запустить myapp.py. Я получаю сообщение об ошибке, что это не признанная команда. Я наверху

#!/usr/bin/env python3 

Это должно быть справедливо из всего, что я читал до сих пор. Я даже попробовал

 #!/usr/bin/python3 

в программе, называемой myapp.py Ни один из них не работает. Я следил за онлайн-курсом, и все шло хорошо, пока мы не добрались до этой точки запуска сценариев python, таких как обычные программы, установив параметр выполнения.

Если вы говорите, выполняя его из любого каталога, вам нужно сделать две вещи.

  1. Установка переменной path . Test.py , мне нужно выполнить Test.py , который находится на рабочем столе, из любого каталога

     export PATH=$PATH:/home/thefourtheye/Desktop/ 
  2. Предоставление разрешения на выполнение файла

     chmod 755 /home/thefourtheye/Desktop/Test.py 

Затем я могу выполнить его, просто набрав Test.py

Вы не можете выполнить файл в unix по имени без имени каталога из-за некоторых соображений безопасности, поэтому вам нужно добавить . как каталог (он будет выглядеть как ./myapp.py )

. не на вашем пути (и это, вероятно, не должно быть по соображениям безопасности), поэтому Ubuntu не будет выглядеть в текущем каталоге для myapp.py программы myapp.py . Вам нужно явно указать ./myapp.py чтобы указать, что вы хотите запустить файл myapp.py в текущем каталоге.

Вы должны назвать это как

 ./myapp.py 

или текущий каталог должен находиться в переменной среды PATH (либо в виде полного имени пути каталога, либо как «.», который указывает динамический текущий путь), проверьте с

 echo $PATH 

Чтобы добавить его, вы можете запустить

 export PATH=$PATH:. 

Если вы хотите запустить его, как:

 [email protected]:~$ myapp.py 

Вы должны поместить скрипт в / usr / bin / или / bin / или что-то подобное. В другом случае вы должны работать как:

 [email protected]:~/appFolder/$ ./myapp.py 

ты пробовал:

 $ sudo chmod a+x myapp.py 

затем запустите код python, используя:

 $ ./myapp.py 

Для пользователей linux может быть проблема текстового формата dos / unix!

пытаться,

sudo dos2unix name_of_your_script

то шэбэнды, вероятно, будут работать правильно! Вот что со мной произошло.

PS: Конечно, ваш скрипт должен быть исполняемым (sudo chmod + x name_of_your_script)