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

Скрипты Python в/usr/bin

Я пишу довольно базовое приложение в python (это только один файл на данный момент). Мой вопрос: как это сделать, чтобы python script мог быть запущен в /usr/bin без расширения .py?

Например, вместо запуска

python htswap.py args

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

htswap args

Спасибо заранее!

4b9b3361

Ответ 1

Просто отмените расширение .py, переименовав файл. Затем вы должны поместить следующую строку вверху вашего файла:

#!/usr/bin/env python

env - небольшая программа, которая устанавливает среду таким образом, чтобы выполнялся правильный интерпретатор python.

Вы также должны сделать свой файл исполняемым, с командой

chmod a+x htswap

И выгрузите его в /usr/local/bin. Это чище, чем /usr/bin, поскольку содержимое этой директории обычно управляется операционной системой.

Ответ 2

Первая строка файла должна быть

#!/usr/bin/env python

Вы должны удалить расширение .py и сделать файл исполняемым, используя

chmod ugo+x htswap

EDIT: Thomas правильно указывает, что такие скрипты должны быть помещены в /usr/local/bin, а не в /usr/bin. Пожалуйста, поддержите его ответ (возможно, за счет моего. Семь авоттов (как мы говорим) за этот материал смешно)

Ответ 3

притон?

#!/usr/bin/env python

Поместите это в начало вашего файла, и вы установите

Ответ 4

добавьте #!/usr/bin/env python к самой вершине htswap.py и переименуйте htswap.py в htswap, затем выполните команду: chmod +x htswap, чтобы сделать исполняемый файл htswap.

Ответ 5

Я вижу в официальных учебниках Python http://docs.python.org/tutorial/index.html, которые

#! /usr/bin/env python

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

#!/usr/bin/python

Это стиль, который вы увидите в сценариях оболочки, например bash. Например

#!/bin/bash

Увидев, что официальные игры идут с первым вариантом, который, вероятно, лучше всего. Согласованность в коде - это то, к чему нужно стремиться!