Как связать приложение Python, включая зависимости? - PullRequest
50 голосов
/ 20 сентября 2008

Мне нужно упаковать свое приложение на python, его зависимости и python в один установщик MSI. Конечный результат должен быть:

  • Python установлен в стандартном месте
  • пакет и его зависимости установлены в отдельном каталоге (возможно, site-packages)
  • установочный каталог должен содержать несжатый python, и отдельный исполняемый файл не требуется

Ответы [ 7 ]

25 голосов
/ 20 сентября 2008

Вид этого вопроса о , как превратить питона в исполняемый файл .

Это сводится к:

py2exe в Windows, Freeze в Linux и py2app на Mac.

17 голосов
/ 20 сентября 2008

Я использую PyInstaller (версия svn), чтобы создать автономную версию моей программы, которая включает в себя Python и все зависимости. Требуется немного возиться, чтобы заставить его работать правильно и включить все (как и py2exe и другие подобные программы, см. этот вопрос ), но тогда это работает очень хорошо.

Затем вам нужно создать установщик. NSIS Отлично работает для этого и бесплатен, но создает файлы .exe, а не .msi. Если .msi не требуется, я настоятельно рекомендую это. В противном случае проверьте ответы на этот вопрос для других вариантов.

4 голосов
/ 22 сентября 2008

Моя компания использует бесплатный инструмент InnoSetup. Это умеренно сложная программа, обладающая огромной гибкостью для создания установщиков для окон. Однако я считаю, что он создает файлы .exe, а не .msi. InnoSetup не является специфичным для python, но мы создали установщик для одного из наших продуктов, который устанавливает python вместе с зависимостями в места, указанные пользователем во время установки.

3 голосов
/ 11 сентября 2013

Я получил гораздо лучшие результаты с зависимостями и пользовательскими структурами папок, используя pyinstaller , и он позволяет вам находить и указывать скрытый импорт и ловушки для больших зависимостей, таких как numpy и scipy. Также PITA, хотя.

3 голосов
/ 20 сентября 2008

py2exe сделает исполняемые файлы Windows включенными в Python.

1 голос
/ 18 марта 2015

Хорошо, я раньше использовал py2exe, и он отлично работает, за исключением одной вещи ... Он работает только на исполняемых машинах Windows. Затем я узнал о Jython, который превращает скрипт Python в файл .Jar. Который, как вы знаете, является исполняемым с любой машины, на которой установлена ​​Java («К вашей последней работающей версии»). И это здорово, потому что и Unix, Windows и IOS (в большинстве случаев) запускают Java. Это означает, что он исполняется со всех следующих машин. Пока они работают на Java. Нет необходимости в "py2mac + py2exe + freeze" только для запуска на всех операционных системах. Просто Jython

Для получения дополнительной информации о том, как это работает и как вы можете использовать его, нажмите здесь.
http://www.jython.org/

1 голос
/ 20 сентября 2008

py2exe - лучший способ сделать это. Это немного PITA для использования, но конечный результат работает очень хорошо.

...