Используя модуль zipapp
, можно создавать автономные программы на Python, которые можно распространять среди конечных пользователей, которым требуется только установка подходящей версии Python в своей системе. Ключом к этому является объединение всех зависимостей приложения в архив вместе с кодом приложения.
myapp
, который содержит файл __main__.py
и любой поддерживающий код приложения.Установите все зависимости приложения в каталог myapp
, используя менеджер установки модулей pip
:
$ python -m pip install -r requirements.txt --target myapp
Предполагается, что есть файл requirements.txt
, в котором перечислены все сторонние модули, с которыми работает приложение. Если нет, то необходимо перечислить зависимости вручную в командной строке pip
.
При необходимости удалите каталоги .dist-info
, созданные pip
, в каталоге myapp
. Они содержат метаданные pip
для управления пакетами и поскольку вы больше не будете использовать pip
, они не требуются, хотя это не принесет никакого вреда, если вы их оставите.
Упакуйте приложение, используя модуль zipapp
с указанием интерпретатора Python приложения:
$ python -m zipapp -p "interpreter" myapp
Это создаст автономный исполняемый файл, который может быть запущен на любой машине с соответствующим доступным интерпретатором. Смотрите раздел "Выбор интерпретатора для автономных приложений Python". Он может быть отправлен пользователям в виде одного установочного файла.
В Unix файл myapp.pyz
является исполняемым. Этот файл можно переименовать, чтобы удалить расширение .pyz
, если вы отдаете предпочтение "простому" имени приложения.
В Windows файл myapp.pyz[w]
является также исполняемым благодаря тому факту, что интерпретатор Python регистрирует расширения файлов .pyz
и .pyzw
при установке.