Превратите приложение или скрипт в команду оболочки - PullRequest
6 голосов
/ 28 мая 2011

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

python app.py

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

спасибо

Ответы [ 6 ]

8 голосов
/ 28 мая 2011
  1. Добавьте строку Шебанга в начале вашего файла:

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

    chmod +x app.py
    

    в оболочке.

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

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

    в .bash_profile.

.
3 голосов
/ 28 мая 2011

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

В вашем .bashrc:

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

Исполняемый файл:

chmod +x myscript.py

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

#!/usr/bin/env python

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

myscript.py

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

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

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

  3. (необязательно) Добавьте каталог в путь, поэтому можете вызывать его где угодно: Добавьте каталог с исполняемым файлом в переменную среды $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, чтобы запустить его, если вынаходятся в одном каталоге.

1 голос
/ 08 декабря 2016

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

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

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

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

1 голос
/ 28 мая 2011

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

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

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

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

0 голосов
/ 28 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...