2010-11-16 2 views
9

Можно создать дубликат:
Distributing Python programsРаспространение программ, написанных на языке Python

У меня есть несколько исходных кодов для некоторых GUI программ я сделал в Python. Я бы хотел их распространить. Тем не менее, я хотел бы сделать как можно проще, чтобы конечный пользователь мог запустить программу и запустить ее. Каков общий способ решения этой проблемы?

Это относится к Windows XP и более поздним версиям.

+0

http://stackoverflow.com/questions/1558385/how-can-i-distribute-python-programs?lq=1 – pmav99

ответ

20

Все примечательные дистрибутивы и Mac OS поставляется поставляются с некоторой версией Python. В Windows не установлен Python по умолчанию, поэтому вы должны установить его отдельно, чтобы запустить модуль Python. Конечно, установленная версия Python должна быть такой же, как ваша программа (версия 2 или 3).

Самый простой способ распространять свои программы, чтобы просто распространять исходный код (например, отправить свой модуль по электронной почте или загрузить его где-то), но в этом случае целевой компьютер должен иметь Python установлен и отвечают зависимости. Еще лучшим решением (по крайней мере для сообщества) является загрузка вашей программы в виде пакета на PyPi. Более подробную информацию об этой процедуре можно найти HERE.

В некоторых случаях есть причины, препятствующие использованию этих параметров. Например, вы не можете установить python и/или зависимости (нет учетной записи root/admin). Если это так, вы можете объединить свои модули вместе со всем остальным, что требуется для запуска вашей программы (например, python * .dll в Windows). Насколько я знаю, основные варианты такого рода распределения являются следующие:

  1. py2exe
  2. py2app (только для Mac OS)
  3. PyInstaller
  4. cx_Freeze
  5. bbFreeze
  6. vendorID
  7. freeze
  8. nuitka --standalone
  9. cython --embed

графический интерфейс для большинства из этих инструментов (я думаю, только для окон) является gui2exe (кроме замораживания).

Другой подход заключается в использовании Portable Python или в случае Linux/BSD StaticPython

Примечание: Не все вышеупомянутые инструменты работают на всех платформах и/или поддерживать Python3. Проверьте их документацию.

UPDATE

довольно интересный модуль также Esky, который обещает автоматическое обновление замороженных приложений. Вы можете найти видео-введение HERE

4

Вы хотите py2exe, который является расширением пакета distutils.

http://www.py2exe.org/

+7

py2exe - это расширение distutils. Это не часть пакета distutils, который находится в стандартной библиотеке Python. – Velociraptors

+2

Использование py2exe будет в основном упаковывать интерпретатор Python и код Python в exe с дополнительными библиотеками (или без дополнительных файлов, если они используются с соответствующими флагами). Затем вы можете использовать что-то вроде Innosetup http://www.jrsoftware.org/isinfo.php, чтобы упаковать необходимые файлы в один «самостоятельный установщик», который упростит распространение нетехнических технологий. – g19fanatic

+0

[здесь прокомментированная версия] (http://aegis.codepad.org/DnSzcjW6) сценария установки py2exe, который я использовал в нескольких проектах - он создает один exe-файл и имеет несколько хороших вариантов. также [проверить upx] (http://upx.sourceforge.net/), чтобы сжать полученный исполняемый файл – lunixbochs

Смежные вопросы