На этом шаге мы рассмотрим способ решения указанной задачи.
Ваша программа превратилась из простого скрипта в приложение со множеством файлов. При этом вы хотели бы предоставить пользователям простой способ запуска программы.
Если ваше приложение выросло в набор из множества файлов, вы можете поместить его в собственный каталог и добавить в него файл __main__.py. Например, вы можете создать такой каталог:
myapplication/
spam.py
bar.py
grok.py
__main__.py
Если файл __main__.py присутствует, вы просто запускаете интерпретатор Python в каталоге высшего уровня:
bash % python3 myapplication
Интерпретатор выполнит __main__.py как главную программу.
Этот прием также работает, если вы упаковали весь ваш код в zip-архив. Например:
bash % ls spam.py bar.py grok.py __main__.py bash % zip -r myapp.zip *.py bash % python3 myapp.zip ... output from __main__.py ...
Создание каталога или zip-архива и добавление файла __main__.py - один из возможных путей для упаковки крупного Python-приложения. Он немного отличается от пакета тем, что код не предназначен для использования в качестве стандартного библиотечного модуля, установленного в библиотеку Python. Вместо этого мы получаем просто набор кода, который вы передаете кому-либо, и этот кто-то может запускать эту программу.
Поскольку каталоги и zip-архивы немного отличаются от обычных файлов, вы также можете пожелать добавить вспомогательный скрипт командной оболочки, чтобы облегчить запуск. Например, если код лежит в файле myapp.zip, вы можете написать такой скрипт:
#!/usr/bin/env python3 /usr/local/bin/myapp.zip
На следующем шаге мы рассмотрим чтение файлов с данными внутри пакета.