У меня есть python script, назовите его script1.py. Я могу запустить его в терминале следующим образом:
python /path/script1.py
...
но я хочу запустить как программу из командной строки:
arbitraryname
...
как я могу это сделать?
У меня есть python script, назовите его script1.py. Я могу запустить его в терминале следующим образом:
python /path/script1.py
...
но я хочу запустить как программу из командной строки:
arbitraryname
...
как я могу это сделать?
Вы используете shebang line в начале вашего script:
#!/usr/bin/env python
сделать исполняемый файл:
chmod +x arbitraryname
и поместите его в каталог на вашем PATH (может быть символической ссылкой):
cd ~/bin/
ln -s ~/some/path/to/myscript/arbitraryname
Есть три части:
Вам нужно добавить shebang в верхней части вашего script, чтобы оболочка узнала, какой интерпретатор будет использоваться при разборе вашего script. Обычно это:
#!path/to/interpretter
Чтобы найти путь к вашему интерпретатору python на вашем компьютере, вы можете запустить команду:
which python
Это приведет к поиску вашего PATH, чтобы найти местоположение исполняемого файла python. Он должен вернуться с абсолютным путем, который вы затем можете использовать для формирования своего шебанга. Убедитесь, что ваш shebang находится в верхней части вашего python script:
#!/usr/bin/python
Вы должны пометить свой script разрешениями запуска, чтобы ваша оболочка знала, что вы хотите ее фактически выполнить, когда пытаетесь использовать ее в качестве команды. Для этого вы можете запустить эту команду:
chmod +x myscript.py
Переменная среды 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
Добавьте в начало следующей строки script1.py
#!/usr/bin/env python
а затем выполните script исполняемый файл:
$ chmod +x script1.py
Если script находится в каталоге, который отображается в вашей переменной PATH
, вы можете просто ввести
$ script1.py
В противном случае вам необходимо указать полный путь (абсолютный или относительный). Это включает текущий рабочий каталог, который не должен находиться в вашем PATH
.
$ ./script1.py
Вам нужно использовать hashbang. Добавьте его в первую строку вашего python script.
#! <full path of python interpreter>
Затем измените права доступа к файлу и добавьте разрешение на выполнение.
chmod +x <filename>
И, наконец, выполните его с помощью
./<filename>
Если его в текущем каталоге,