Подтвердить что ты не робот

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

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

python /path/script1.py
...

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

arbitraryname
...

как я могу это сделать?

4b9b3361

Ответ 1

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

#!/usr/bin/env python

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

chmod +x arbitraryname

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

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

Ответ 2

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

  • Добавьте "shebang" в верхней части вашего script, в котором рассказывается, как выполнить script
  • Дайте разрешения script 'run'.
  • Сделайте script в своем PATH, чтобы вы могли запускать его из любого места.

Добавление shebang

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

#!path/to/interpretter

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

which python

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

#!/usr/bin/python

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

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

chmod +x myscript.py

Добавьте script к вашему пути

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

echo $PATH

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

which <commandname>

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

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

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

Ответ 3

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

#!/usr/bin/env python

а затем выполните script исполняемый файл:

$ chmod +x script1.py

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

$ script1.py

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

$ ./script1.py

Ответ 4

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

#! <full path of python interpreter>

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

chmod +x <filename>

И, наконец, выполните его с помощью

./<filename>

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