Как упаковать Python Project в отдельный исполняемый файл? - PullRequest
0 голосов
/ 16 января 2019

Я не хочу выпускать свой проект Python, но когда я отправляю его кому-то, он вынужден установить все пакеты, которые я использую в моем проекте Python.

Есть ли способ упаковать его или что-то, потому что, возможно, есть некоторые пользователи, которые не очень знакомы с pip или python.

С уважением

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Если вы хотите развернуть свое приложение, которое должно быть запущено на других машинах. Я действительно предлагаю вам использовать докер. Вы создадите образ Docker локально, который будет содержать ваше приложение и все необходимые вам зависимости. пользователь просто должен установить докер, получить образ докера и запустить его на своем компьютере. https://docs.docker.com/get-started/

0 голосов
/ 16 января 2019

Если вы хотите развернуть приложение Python, вы можете использовать cx_freeze для его упаковки. Он предоставит вам двоичный файл, готовый для выполнения

0 голосов
/ 16 января 2019

PyInstaller

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 для генерации пакета только с одним исполняемым файлом.

Конкретный случай:

Вы спрашивали, как получить аргументы, отправленные пользователем. Вот какой-то способ сделать это, более или менее удобный:

  • Использовать ввод (),
  • Использовать файл конфигурации,
  • Использовать параметр по умолчанию.
...