Я знаю, как скомпилировать CPython-файл в exe с помощью cx_freeze, но можно ли скомпилировать простую программу с использованием PyPy для Exe?Compile PyPy to Exe
ответ
Это py2exe решение, которое может работать для вас: compile.py
#!/usr/bin/env python
# Corey Goldberg
from distutils.core import setup
import py2exe
import sys
if len(sys.argv) == 2:
entry_point = sys.argv[1]
sys.argv.pop()
sys.argv.append('py2exe')
sys.argv.append('-q')
else:
print 'usage: compile.py <python_script>\n'
raw_input('press ENTER to exit...')
sys.exit(1)
opts = {
'py2exe': {
'compressed': 1,
'optimize': 2,
'bundle_files': 1
}
}
setup(console=[entry_point], options=opts, zipfile=None)
-1 py2exe делает * не * работает с PyPy (по крайней мере, в настоящее время) - сначала сделайте некоторое исследование. И почему вы ссылаетесь на сценарий настройки нечеткого проекта, а не на проект py2exe? – delnan
@delnan: Поскольку py2exe не выводит один файл в качестве вывода, если вы не укажете ему параметры, связанные с ним. –
@CeesTimmerman Конечно, этот параметр, наряду с другими, которые могут быть полезны OP, где-то документирован. – delnan
Там нет готовых так или учебник о том, как сделать создать EXE из программы с помощью интерпретатора PyPy, насколько я знаю. Я боюсь, что это не совсем тривиально.
В принципе, для перевода файлов PyPy можно использовать два способа, чтобы получить EXE-файл, используя либо интерпретатор PyPy, либо используя собственную программу RPython (интерпретатор PyPy сам по себе является программой RPython, то есть использует ограниченное подмножество Python).
Если вы используете ограниченное подмножество RPython и никаких зависимостей, вы можете изучить сценарий перевода в pypy/translator/goal, где вы также найдете много целевых * .py файлов. Возьмите его и измените его для своих целей. Вы можете первым хотите играть с переводом функции питона, начиная отсюда:
http://doc.pypy.org/en/latest/getting-started-dev.html#trying-out-the-translator
Если программа является приложением, и зависит от внешних пакетов, вы должны сначала попробовать, чтобы убедиться, что ваша программа работает на PyPy на всех - не все внешние библиотеки поддерживаются. Затем вы можете изучить модификацию скрипта targetpypystandalone для загрузки ваших модулей приложений. Если есть сомнения, попробуйте получить некоторую помощь в списке рассылки pypy-dev или канале #pypy на irc.freenode.net.
Один недостаток RPython заключается в том, что он недокументирован, и если ваш код не будет следовать ему, переводчик потерпит неудачу с совершенно непонятными сообщениями об ошибках. (Например, попытка использования именованного кортежа дает ошибку. Объект FrozenDesc не имеет атрибута allenforced_attrs.) – Antimony
Возможный дубликат http://stackoverflow.com/questions/4251964/can-pypy-be-used-to-produce-a-small-standalone-executable –
Это не дубликат, потому что ссылка, которую вы предоставили, ничего не решает и устарел в 2010 году, сейчас у нас есть 2012 год. Возможно, с тех пор что-то изменилось. – Nuncjo
@RolandSmith Этот вопрос конкретно задает вопрос о чем-то * в отличие от * py2exe и др., Поскольку он не включает интерпретатор Python и принял «Остановить запись Python и начать использовать этот совершенно другой язык, который является подмножеством Python» в качестве ответа , Этот вопрос просто запрашивает аналогичный инструмент замораживания, который работает с PyPy и полным Python. – delnan