Вызов пакета python по имени пакета

Я хочу вызывать утилиту моего локального пакета по ее имени, как в Django django-admin. Это имеет такую структуру: utility-name [command]

Я нашел метод вызова утилиты с помощью __ main __.py. Структура использования этого метода такова: python -m myappname. Но это не то, что я хотел.

Как я могу использовать структуру вызова, как в django-admin? Я младший программист, поэтому если этой информации недостаточно, вы можете задавать вопросы

django-admin - это просто файл, расположенный в каталоге, принадлежащем к путям, по которым операционная система будет осуществлять поиск.

В самом деле, если мы посмотрим на django-admin, то это выглядит так:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from django.core.management import execute_from_command_line
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(execute_from_command_line())

, и затем он находится, например, в ~/.local/bin/, причем операционная система выводит этот список. Для Unix-подобных операционных систем обычно существует переменная $PATH, которая представляет собой список каталогов, разделенных двоеточиями. Для Windows это системная переменная с именем path, которую можно изменять.

Таким образом, вы создаете запускаемый файл (без расширения .py и с исполняемыми правами для Unix-подобной системы) и добавляете каталог к переменной окружения/системной переменной PATH. Обычно это позволяет, например, загрузить виртуальное окружение и запустить другой скрипт.

Вернуться на верх