Skip to Content

Компиляция python кода в exe под Linux

Posted on One min read

Если на linux машинах python установлен повсеместно, то windows все наоборот. Решил скомпилировать свое приложения в exe, причем желательно что бы это был одинокий exe файл и не тянул с собой дополнительные dll библиотеки.
Для компиляции python кода в бинарные файлы есть очень удобная программа pyinstaller.
Поддержку cross компиляции они уже начали добавлять, но пока она работает не полноценно, поэтому я решил установить python под wine.
Устанавливаем wine. Качаем python.
У меня, кстати, python 2.7.2 отказался устанавливать под wine, а вот 2.7.1 встал без проблем.
Для работы pyinstaller под windows нужен пакет pywin32, качаем и устанавливаем(http://sourceforge.net/projects/pywin32/.
Качаем pyinstaller(http://www.pyinstaller.org/.
После того как у нас установлен python и pywin32 под wine, мы готовы.
Распаковываем pyinstaller куда-нибудь поближе к установленном python, у меня это было /home/pavel/.wine/drive_c/Python27/progs/pyinstaller-1.5.1
Туда же, в progs, копируем наше python приложение.
Для начала надо что pyintaller создал файл конфигурации для нашей системы

wine python.exe progs/pyinstaller-1.5.1/Configure.py

Далее создаем spec файл для нашего python приложения

wine python.exe progs/pyinstaller-1.5.1/Makespec.py -F progs/foobar.py</blockquote>

ключик -F как раз нужен для того чтобы на выходе у нас получился stand-alone executables
Makespec.py сгенерирует файл foobar.spec, который нам необходим для компиляции.
И последнее что осталось сделать, это сбилдить наш бинарник.

wine python.exe progs/pyinstaller-1.5.1/Build.py foobar.spec

И в директории dist получаем наш foobar.exe.