Многие задаются вопросом - как скрыть исходный код написанных на питоне скриптов, чтобы затем можно было например продавать эти скрипты. В своё время и мы задались этим вопросом, в следствии чего со временем нашли его решение.
Можно было бы просто отдавать клиентам байт-код, который создает python при первом запуске скрипта. Например, запустили test.py, рядом появился test.pyc, его и продаем. Однако в сети есть скрипты, которые восстанавливают из него исходный код с точностью до байта.
Поэтому, чтобы закрыть сорцы скрипта - его надо скомпилировать. Для этого, с помощью расширения cython его можно перевести в Си код, который и скомпилировать обычными инструментами, вроде make.
Рассмотрим решение пошагово:
- Конвертируем python-скрипт в Си:
cython -3 СКРИПТ.py
Получаем СКРИПТ.c - это исходный код python-модуля, который выполняет то же самое что и питон-скрипт.
Компилируем полученный Си-файл:
gcc -pthread -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include/python3.3m -c СКРИПТ.c -o СКРИПТ.o
Получаем объектный файл СКРИПТ.о
Осталось слинковать его в бинарник. Так как примеры выполняются на линуксе, он будет иметь расширение .so:
На Windows расширение будет .pyd
link = gcc -pthread -shared СКРИПТ.o -o СКРИПТ.so
Таким образом мы имеем новый модуль для питона "СКРИПТ.so",
который можно импортировать в код других скриптов:
import СКРИПТ
http://python-3.ru/page/python-code-compile