2014-09-12 4 views
0

Я хочу развернуть исполняемый файл (.exe) из моего проекта python2.7 со всем включенным. Я видел pyinstaller и py2exe, но проблема в том, что в моем проекте используется множество сторонних пакетов, которые по умолчанию не поддерживаются. Каков наилучший выбор для таких случаев? Можно ли использовать другой распределительный пакет?Развертывание Python с сторонними библиотеками

Спасибо

+1

PyInstaller и py2exe на самом деле довольно хороши при упаковке практически во всем. Что вы подразумеваете под «сторонними библиотеками, которые не поддерживаются по умолчанию»? –

+0

Извините, что я имел в виду такие пакеты, как http://www.pyinstaller.org/wiki/SupportedPackages. какой из них легче для таких случаев? А также не дает мне ошибок с MSVCP90.dll? –

+1

Если пакет не указан в разделе «Поддерживаемые пакеты», это не значит, что PyInstaller обязательно сработает. Поэтому лучше всего попробовать, посмотреть, как это работает, и если это не по какой-то причине, посмотрите на конкретную ошибку и, возможно, обсудите ее в соответствующем сообществе. И py2exe, и PyInstaller хороши, поэтому выбор - это вопрос личных предпочтений (я помню, как мне понравилось последнее). Я не уверен, что вы подразумеваете под «ошибками с MSVCP90.dll». –

ответ

1

Пакеты создания исполняемых должны быть в состоянии захватить 3-й пакеты партии, если они установлены. Иногда вам нужно указать, что включать, если библиотека злоупотребляет системой импорта Python или не является «чистым Python» пакетом. Например, иногда мне нужно было указать lxml, чтобы получить py2exe, чтобы правильно подобрать его.

Проект py2exe для Python 2 не был обновлен в течение довольно длительного времени, поэтому я бы рекомендовал один из вариантов: PyInstaller, cx_freeze или bb_freeze.

Я видел проблемы с MSVCP90.dll при использовании не чистых пакетов Python, таких как wxPython. Обычно вы можете добавить это в свой setup.py, чтобы включить его. Если это не работает, вы также можете добавить его с помощью утилиты установщика, такой как NSIS. Или вы можете просто указать в своем README, что ваше приложение зависит от распространяемого Microsoft C++ и включает в себя ссылку на него.

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