Подтвердить что ты не робот

Может ли PyPy/RPython использоваться для создания небольшого автономного исполняемого файла?

(Или: "Может ли PyPy/RPython использоваться для компиляции/перевода Python на C/С++ без необходимости выполнения Python?" )

Я попытался понять PyPy с его RPython и его Python, его запуском и его компиляцией и его переводом и несколько потерпел неудачу.

У меня есть гипотетический проект Python (для Windows); Я бы хотел, чтобы его размер уменьшался в размере порядка 100 килобайт (O.N.O.), а не несколько мегабайт, что влечет за собой использование py2exe (после UPX). Можно ли каким-либо образом использовать PyPy 1 для создания автономного исполняемого файла, который не зависит от Python26.dll? Если возможно, нужно ли следовать ограничениям на RPython, например, for, работающим только со встроенными типами, или это полный синтаксис Python?

Я понимаю, что если это можно сделать, я почти наверняка не смог напрямую использовать C-модули из Python.


1 (со времени запроса ситуация стала яснее, и эта часть инструментальной цепочки более четко обозначена как RPython, а не PyPy, в 2010 году это было не так.)

4b9b3361

Ответ 1

Да, PyPy может создавать автономные исполняемые файлы из кода RPython. Это означает, что вам нужно следовать всем неудобным правилам RPython, когда дело доходит до написания кода. Ваш код Python вряд ли будет функционировать из коробки, а перенос существующего кода на Python обычно не увлекателен. Он не сделает исполняемые файлы такими же маленькими, как C, но, например, цель rpystone (от pypy/translator/goal) с использованием boehm GC составляет 80k на 64-битной после удаления.