Как упаковать Python Project в отдельный исполняемый файл?

1

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

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

С уважением

Теги:
pip
package
release

4 ответа

3
Лучший ответ

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

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

Вы спросили, как получить аргументы, отправленные пользователем. Вот какой-то способ сделать это более или менее удобно: - Использовать input(), - Использовать файл конфигурации, - Использовать параметр по умолчанию

  • 0
    Здравствуйте, спасибо за ваш ответ. Но как .exe может работать на компьютере Mac / Linux? А также конвертировать его в .exe - это нормально, но я не хочу сохранять файл .py, потому что он работает с параметром, я просто хочу сделать его удобным для пользователя, так что никто не должен загружать все пакеты с помощью pip, который я использую в мой проект. // Редактировать: как я могу упаковать все в один .exe?
  • 1
    Для Mac это создает .app, а для linux - исполняемый файл.
Показать ещё 4 комментария
0

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

0

Эта статья может быть полезна для вас: https://medium.com/@amimahloof/how-to-package-a-python-project-with-all-of-its-dependencies-for-offline-install-7eb240b27418, если это это то, что я верю, что вы пытаетесь достичь. Я не автор, но мне лично это помогло, когда я создавал программный пакет для своего скрипта на python.

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню