запустить скрипт python в терминале без команды python

У меня есть скрипт python, назовите его script1.py. Я могу запустить его в терминале таким образом:

python /path/script1.py ... 

но я хочу работать как программа командной строки:

 arbitraryname ... 

как мне это сделать ?

Вы используете строку shebang в начале вашего скрипта:

 #!/usr/bin/env python 

сделать исполняемый файл:

 chmod +x arbitraryname 

и поместите его в каталог на вашем PATH (может быть символической ссылкой):

 cd ~/bin/ ln -s ~/some/path/to/myscript/arbitraryname 

Есть три части:

  1. Добавьте «shebang» в верхней части вашего скрипта, который рассказывает, как выполнить скрипт
  2. Дайте разрешения на запуск сценария.
  3. Сделайте скрипт в своем PATH, чтобы вы могли запускать его из любого места.

Добавление shebang

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

 #!path/to/interpretter 

Чтобы найти путь к вашему интерпретатору python на вашем компьютере, вы можете запустить команду:

 which python 

Это приведет к поиску вашей PATH, чтобы найти местоположение вашего исполняемого файла python. Он должен вернуться с абсолютным путем, который вы затем можете использовать для формирования своего шебанга. Убедитесь, что ваш shebang находится в верхней части вашего скрипта python:

 #!/usr/bin/python 

Разрешения на запуск

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

 chmod +x myscript.py 

Добавьте скрипт на свой путь

Переменная среды PATH – это упорядоченный список каталогов, которые ваша оболочка будет искать при поиске команды, которую вы пытаетесь запустить. Поэтому, если вы хотите, чтобы ваш скрипт python был командой, которую вы можете запускать из любого места, тогда она должна быть в вашем PATH. Вы можете увидеть содержимое вашего пути, выполняющего команду:

 echo $PATH 

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

 which <commandname> 

Теперь у вас есть два варианта: добавьте свой скрипт в каталог, уже находящийся в вашем PATH, или добавьте новый каталог в свой PATH. Обычно я создаю каталог в домашнем каталоге пользователя и добавляю его в PATH. Чтобы добавить вещи на свой путь, вы можете запустить команду:

 export PATH=/my/directory/with/pythonscript:$PATH 

Теперь вы сможете запускать свой скрипт python как команду в любом месте. НО! если вы закроете окно оболочки и откройте новый, новый не запомнит изменения, которые вы только что внесли в ваш PATH. Поэтому, если вы хотите, чтобы это изменение было сохранено, вам нужно добавить эту команду в нижней части вашего .bashrc или .bash_profile

Добавьте следующую строку в начало script1.py

 #!/usr/bin/env python 

а затем сделать исполняемый файл сценария:

 $ chmod +x script1.py 

Если сценарий находится в каталоге, который отображается в вашей PATH , вы можете просто ввести

 $ script1.py 

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

 $ ./script1.py 

Вам нужно использовать hashbang . Добавьте его в первую строку вашего скрипта python.

 #! <full path of python interpreter> 

Затем измените права доступа к файлам и добавьте разрешение на выполнение.

 chmod +x <filename> 

И, наконец, выполните его, используя

 ./<filename> 

Если его в текущем каталоге,