Как сделать так, чтобы скрипт Python выполнялся как тривиальная команда linux с Distutils?
Мне нужно запустить модуль python как обычную команду Linux, не беспокоясь о расположении файла. Могу ли я сделать это с Distutils?
Конкретно о том, что мне нужно. Пользователь должен выполнить простую установку и иметь возможность использовать ее:
python setup.py install
mymodule --arg value
Как это сделать?
2 ответа
Если вы укажете список скриптов в setup()
, distutils автоматически установит их в соответствующий каталог:
from distutils.core import setup
setup(
name='somemodule',
scripts=['mymodule']
)
Обратите внимание, что mymodule
здесь для вашего примера должен быть запущенный скрипт на python с таким именем; это, вероятно, не должен быть ваш настоящий модуль, а скорее импортировать ваш модуль, если это необходимо.
Если вы хотите выполнить команду, указав только ее имя, ее необходимо установить в каталог, указанный в PATH
переменная окружения. Для пользовательских программ обычные места /bin
, /usr/bin
(с /usr/local/bin
быть довольно распространенным тоже).
Так что настройте свой пакет для установки вашего скрипта в одном из этих мест. Однако это потребует root
привилегии.
Если вы хотите иметь возможность установить без root
привилегии, альтернатива заключается в том, чтобы убедиться, что каталог скрипта указан в PATH
переменная.