Поверните приложение или скрипт в команду оболочки

Когда я хочу запускать свои приложения python из командной строки (под ubuntu), я должен находиться в каталоге, где находится исходный код app.py, и запускать приложение с командой

python app.py

Как я могу сделать это (как это обычно делается) для запуска приложения из произвольного каталога с помощью команды: app ? Точно так же, как вы ls , mkdir и другие команды?

Спасибо

Добавьте каталог, в котором скрипт находится на вашем пути, сделайте его исполняемым и добавьте правильную строку shebang.

В вашем .bashrc :

 PATH=$PATH:/dir/to/the/script 

Исполняемые:

 chmod +x myscript.py 

В верхней части скрипта добавьте строку shebang:

 #!/usr/bin/env python 

Затем, из любого места, вы можете просто сделать:

 myscript.py 

(Имейте в виду, что вам не нужен суффикс .py, его можно назвать чем угодно, например, app если у вас есть подходящая строка shebang).

  1. Добавьте строку shebang в начале файла:

     #!/usr/bin/env python 
  2. Сделайте свой файл исполняемым, позвонив

     chmod +x app.py 

    в оболочке.

  3. Переместите его в какое-то место, включенное в PATH среды PATH и переименуйте его в app . В качестве альтернативы добавьте путь к каталогу, содержащему app в PATH среды PATH , добавив строку

     export PATH=$PATH:/path/to/app 

    в ваш .bash_profile .

  1. Добавьте shebang: в качестве верхней строки файла: #!/usr/bin/python или #!/usr/bin/python3 (вы можете использовать python -B для предотвращения генерации файлов .pyc , поэтому я не 't использовать /usr/bin/env )

  2. Сделайте его исполняемым: вам нужно будет сделать chmod +x app.py

  3. (необязательно) Добавить каталог в путь, поэтому его можно вызвать в любом месте: добавьте каталог с исполняемым файлом в $PATH среды $PATH . Как вы это делаете, зависит от вашей оболочки, но либо export PATH=$PATH:/home/you/some/path/to/myscripts (например, дистрибутивы Linux, которые используют bash) или setenv PATH $PATH:/home/you/some/path/to/myscripts (например, tcsh, как в Mac OS X). Вы захотите поместить это, например, в свой .bashrc или любой другой сценарий запуска, или вам придется повторять этот шаг каждый раз, когда вы входите в систему.

app.py необходимо будет находиться в myscripts (или других, которые вы назовите его). Вам даже не нужно называть его app.py , но вы можете просто переименовать его в app .

Если вы хотите пропустить шаг № 3, вы все равно можете выполнить ./app чтобы запустить его, если вы находитесь в том же каталоге.

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

 chmod +x app.py ln ~app.py /opt/local/bin/app 

… предполагая, что / opt / local / bin уже на вашем пути.

Кроме того, не забудьте добавить строку shebang в первую строку вашего скрипта: #!/usr/bin/env python

Решение, отличное от тех, что упомянуты здесь: Используйте псевдоним.

 alias app='python /path/to/app.py' 

Добавьте вышеприведенную строку в файл ~/.bashrc или ~/.bash_login (или предпочтительно в ~/.bash_aliases если вы находитесь на Ubuntu). Затем вы можете просто использовать свой скрипт в качестве инструмента командной строки с app .

Не нужно добавлять shebang (тем самым изменяя существующий скрипт Python), нет необходимости делать исполняемый файл сценария и не нужно менять PATH .

Я уверен, что вы должны сделать скрипт исполняемым через chmod +x и поместить его в переменную PATH вашей системы.