Минимизировать размер дистрибутива Python - PullRequest
7 голосов
/ 26 февраля 2010

Помеха, которую мы имеем при отправке python, заключается в большом размере стандартной библиотеки. Есть ли минимальный дистрибутив Python или простой способ выбрать то, что мы хотим от стандартная библиотека? Платформа Linux.

Ответы [ 3 ]

7 голосов
/ 27 февраля 2010

Если все, что вам нужно, это получить минимальное подмножество, которое вам нужно (вместо того, чтобы создавать exe, который ограничивал бы вас системами Windows), используйте стандартный библиотечный модуль modulefinder , чтобы вывести список всех модулей вашей программы. требует (вы получите все зависимости, прямые и косвенные). Затем вы можете zip все соответствующие файлы .pyo или .pyc (в зависимости от того, запускаете ли вы Python с флагом -O или без него) и просто использовать этот zip-файл в качестве sys.path (плюс каталог для всех .pyd или .so динамические библиотеки с собственным кодом, которые могут вам понадобиться - они должны находиться непосредственно в файловой системе, чтобы позволить ОС загружать их по мере необходимости, не могут быть загружены напрямую из zip-файла, как это делают модули байт-кода Python к сожалению).

2 голосов
/ 26 февраля 2010

Вы смотрели на py2exe ? Он предоставляет способ доставки программ Python без установки Python.

0 голосов
/ 27 февраля 2010

Как предлагают Хэнк Гей и Алекс Мартелли, вы можете использовать py2exe. Кроме того, я хотел бы предложить использовать что-то вроде IronPython . В зависимости от вашего приложения вы можете использовать библиотеки, встроенные в .NET Framework (или MONO, если для Linux). Это уменьшает размер вашей доставки, но добавляет минимальные требования к вашей программе.

Кроме того, если вы используете функции из библиотеки, вы можете использовать from module import x вместо импорта по шаблону. Это также уменьшает размер вашего корабля, но, возможно, не слишком сильно

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...