Конвертировать скрипт Python в двоичный исполняемый файл - PullRequest
0 голосов
/ 21 марта 2010

Я написал хруст кода на Python.Расчеты могут занять несколько часов.Можно ли как-нибудь скомпилировать его в двоичный файл?

Спасибо

Ответы [ 3 ]

5 голосов
/ 21 марта 2010

Не полезным (для вас) способом, но перемещение вычислений в NumPy или Cython ускорит их.

3 голосов
/ 21 марта 2010

Сначала вы можете попробовать психо, которое может увеличить скорость до 10 раз, но в 2 раза более типично

Если вы можете опубликовать код где-нибудь, возможно, кто-то может указать, как использовать numpy.

Если ваша задача не отображается должным образом, только numpy, тогда Cython является хорошим выбором для преобразования интенсивной функции или двух в код на C, просто добавив несколько cdefs.

Если вы покажете нам код (даже только горячие точки), мы, возможно, дадим вам лучший совет.

Возможно, вы сможете изменить свой алгоритм

2 голосов
/ 21 марта 2010

Шедскин стоит попробовать.

С их объявления на главной странице:

Shed Skin - экспериментальный компилятор, что можно перевести чисто, но неявно статически типизированный Python программы в оптимизированный C ++. Оно может генерировать автономные программы или модули расширения, которые можно импортировать и используется в больших программах на Python.

Помимо ограничения печати, программы не могут свободно использовать Python стандартная библиотека (хотя около 20 общие модули, такие как random и re, в настоящее время поддерживаются). Кроме того, не все функции Python, такие как вложенные функции и переменные числа аргументы, поддерживаются (см. учебник для деталей).

Для набора из 44 нетривиальных тестов программы (более 10000 строк в итого (sloccount)), измерения показывают типичное ускорение в 2-40 раз Psyco, и в 2-220 раз за CPython. Потому что сарайная кожа все еще находится на ранней стадии стадии развития, однако, многие другие программы не будут компилироваться вне коробки.

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