Компиляция Python

Компиляция

Если бы Python был ещё и компилируемым, ему бы цены не было... Честно говоря, мне не очень понятно, почему при таком удобстве разработки под Python и всеобщей любви сообщества к открытому коду, так мало программ на Python. Среднестатистическому Windows-пользователю сильно проблематично установить виртуальную машину и пару дополнительных пакетов? Вряд ли. Скорее windows-пользователя останавливает отсутствие программ на Python. А разработчка останавливает некомпилируемость Pуthon и неверие в конечного пользователя. На Python можно написать проект в-одиночку. На C++ то же самое сделать значительно труднее. Понятно, что C++ программа будет быстрее работать, и она компилируема. Но для огромного количества программ особенное быстродействие и не нужно, а пользователь может обойтись и без exe-файла.

компиляция в exe

При соблюдении некоторых правил shedskin умеет конвертировать Python-код в C++. В дистрибутиве под windows есть компилятор.

Распаковать архив shedskin в директорию с правильным именем (без русских букв, пробелов и спецзнаков). В папку /shedskin-0.2/shedskin положить файл с содержанием print "hello" и называнием hello.py.
Запустить файл init.bat. Откроется консоль, в ней набать
shedskin hello
Появится два C++ файла и makefile.
make
С++ будет скомпилирован в exe.

exe-файл можно создать с помощью py2exe

py2exe складывает в одну папочку все файлы, необходимые для запуска Python-программы и создаёт в этой папке свой exe-файл. Необходимые файлы для запуска - это сама виртуальная машина, библиотеки и скомпилированные файлы разрабатываемого приложения.
Получается windows-приложение, но не слишком красивое - куча файлов, часть из которых, возможно, не нужна. А часто хочется иметь один независимый файл. Где-то в инете видел утилиту, которая может упаковывать несколько связанных файлов в один exe. Наверное, подошла бы для этих целей.

бинарник с помощью PyInstaller

Скачать дистрибутив в виде архива. Распаковать в любое удобное место. Внутри архива есть документация. Дополнительно надо скачать pywin32, не знаю что это, но PyInstaller его хочет. Далее надо запустить файл Configure.py, он сам что-то настроит, после чего можно использовать компилятор.

Использование компилятора состоит из двух шагов:
1. Создать
spec-файл
2. Скомпилировать в
exe

Чтобы создать spec-файл надо выполнить команду:
D:\<путь>\pyinstaller>python Makespec.py --onefile -w D:\<путь_к_скрипту>\__init__.py
Он создаст папку для проекта (внутри директории D:\<путь>\pyinstaller) и сам spec-файл.

Далее непосредственно создаём exe:
D:\<путь>\pyinstaller>python Build.py __init__\__init__.spec

Freeze

Тулзина для создания исполняемых бинарников под Linux. Не смотрел.