2009-09-11 2 views
6

У нас есть приложение (Windows), с помощью которого мы распространяем всю установку Python (включая несколько сторонних модулей, которые мы используем), поэтому мы имеем согласованность и поэтому нам не нужно устанавливать все в отдельности. Это работает очень хорошо, но приложение довольно огромно.Trimming Python Runtime

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

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

+1

Отличный вопрос, я хотел бы знать, как уменьшить размер моих исполняемых файлов python. Помните, что если вы используете wxPython, некоторые дистрибутивы Windows, включая XP, не будут иметь необходимых DLL-файлов (MSVCR71.DLL и MSVCP71.DLL), необходимых для загрузки. – 2009-09-11 02:49:42

+0

Другой вопрос: считается ли py2exe «готовым к производству» с точки зрения стабильности? – Dave

ответ

5

Оба py2exe и pyinstaller (Примечание: для последнего использования версии SVN, освобожденный один ОЧЕНЬ долго в зуб ;-) сделать их «обрезки» с помощью modulefinder, стандартный библиотечный модуль для нахождения всех используемых модулей с помощью данного сценария Python; вы можете, конечно, использовать последний самостоятельно, чтобы идентифицировать все необходимые модули, если вы не доверяете pyinstaller или py2exe, чтобы делать это правильно и автоматически от вашего имени.

6

Один трюк, который я узнал при обрезке .py-файлов для отправки: Удалите все .pyc-файлы в стандартной библиотеке, а затем запустите приложение до конца (то есть, чтобы убедиться, что все модули Python, которые ему нужны, будут загружаться). Если вы изучите стандартные библиотечные каталоги, будут файлы .pyc для всех используемых модулей. .py файлы без .pyc - это те, которые вам не нужны.

1

Это py2exe page on compression предлагает использовать UPX для сжатия любых DLL или .pyd-файлов (которые на самом деле являются только DLL-файлами). Очевидно, это не помогает в вырезании ненужных модулей, но это может/будет обрезать размер вашего дистрибутива, если это большая проблема.

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