Я не хочу выпускать свой проект Python, но когда я отправляю его кому-то, он вынужден установить все пакеты, которые я использую в моем проекте Python.
Есть ли способ упаковать это или что-то, потому что, возможно, есть некоторые пользователи, которые не очень знакомы с pip или python.
С уважением
PyInstaller - это программа, которая замораживает (упаковывает) программы Python в автономные исполняемые файлы под Windows, GNU/Linux, Mac OS X, FreeBSD, Solaris и AIX. Его основные преимущества перед аналогичными инструментами заключаются в том, что PyInstaller работает с Python 2.7 и 3.4—3.7, он создает меньшие исполняемые файлы благодаря прозрачному сжатию, он полностью мультиплатформенный и использует поддержку ОС для загрузки динамических библиотек, обеспечивая тем самым полную совместимость.
Это работает, даже если у пользователей не установлен Python.
Вот пример из проекта GitHub. Как видите, вы можете скачать исходники, а также zip-архив, содержащий все пакеты, используемые для запуска вашего проекта. В этом примере он содержит много файлов, но вы можете упаковать все в один файл .exe.
Установите PyInstaller из PyPI:
pip install pyinstaller
Перейдите в каталог ваших программ и запустите:
pyinstaller yourprogram.py
Это сгенерирует пакет в подкаталоге с именем dist.
Вы можете использовать аргумент
-onefile
, чтобы сгенерировать пакет только с одним исполняемым файлом.
Вы спросили, как получить аргументы, отправленные пользователем. Вот какой-то способ сделать это более или менее удобно: - Использовать input(), - Использовать файл конфигурации, - Использовать параметр по умолчанию
Если вы хотите развернуть свое приложение, которое должно быть запущено на других машинах. Я действительно предлагаю вам использовать докер. Вы создадите образ докера локально, который будет содержать ваше приложение и все зависимости, которые вам нужны, чтобы пользователь просто установил докер, получил ваш образ докера и запустил его на своем компьютере. https://docs.docker.com/get-started/
Эта статья может быть полезна для вас: https://medium.com/@amimahloof/how-to-package-a-python-project-with-all-of-its-dependencies-for-offline-install-7eb240b27418, если это это то, что я верю, что вы пытаетесь достичь. Я не автор, но мне лично это помогло, когда я создавал программный пакет для своего скрипта на python.
Если вы хотите развернуть приложение Python, вы можете использовать cx_freeze для его упаковки. Он предоставит вам бинарный файл, готовый к выполнению