LINUX.ORG.RU

Компиляция из .py в исполняемый бинарник

 , , ,


0

1

Нашел инструкции как компилировать (думал что получается на выходе бинарник как например в С/С++ - а оно просит библиотеку pygame)


компиляция с помощью Python

$ virtualenv -p python3 venv
$ . venv/bin/activate
(venv) $ pip install pyinstaller --upgrade
(venv) $ pip3 install pyinstaller
(venv) $ python -m PyInstaller main.py --onefile

PYTHONLIBVER=python$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')$(python3-config --abiflags)
gcc -Os $(python3-config --includes) example_file.c -o output_bin_file $(python3-config --ldflags) -l$PYTHONLIBVER


Как сделать так чтобы все было вшито в один бинарник?

★★★★★
Ответ на: комментарий от w1nner

Насколько я знаю, в любом случае этот бинарник будет представлять интерпретатор Питона + пристыкованный байт-код. Т.е. его будет легко декомпилировать.

Порой опции pyinstaller - по логике, там должна быть возможность указать, какие модули/файлы ты хочешь включить в результирующий «бинарник». В cx_freeze такая возможность была.

bigbit ★★★★★
()

Падажжи, у тебя питон или цитон? Если второе, то он какбэ только в бинарники и собирается.

cocucka ★★★★☆
()

Попробуй --add-binary. У нас так .so’шка добавляется в итоговый файл.

gruy ★★★★★
()

В питоне/сайтоне это называется freeze, гугли по этому слову

upcFrost ★★★★★
()
Ответ на: комментарий от cocucka

Падажжи, у тебя питон или цитон? Если второе, то он какбэ только в бинарники и собирается

В бинарники, но в шаренные, статику он не умеет. Для статики есть обвязки типа cython_freeze

upcFrost ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.