Есть два способа решить вашу проблему
- Используйте статический строитель, например заморозку, или
pyinstaller
, илиpy2exe
- Скомпилировать с использованием
cython
Я объясню, как вы можете это сделать, используя второй, поскольку первый метод не является кросс-платформой и версией и был объяснен в других ответах. Кроме того, использование таких программ, как pyinstaller, обычно приводит к огромным размерам файлов, тогда как использование cython приведет к созданию файла размером в КБ
Сначала установите cython
. Затем переименуйте свой файл python (скажем test.py
) в .pyx
файл
sudo pip install cython
mv test.py test.pyx
Затем вы можете использовать cython
вместе с GCC для его компиляции ( cython
генерирует файл C из .pyx
файла Python , а затем GCC компилирует файл C)
(ссылка на https://stackoverflow.com/a/22040484/5714445 )
cython test.pyx --embed
gcc -Os -I /usr/include/python3.5m -o test test.c -lpython3.5m -lpthread -lm -lutil -ldl
ПРИМЕЧАНИЕ . В зависимости от вашей версии python вам может потребоваться изменить последнюю команду. Чтобы узнать, какую версию Python вы используете, просто используйте
$ python -V
Теперь у вас будет двоичный файл test, который вы ищете.
Еще на заметку :
- Cython используется для использования определений переменных C-типа для выделения статической памяти для ускорения программ Python. Однако в вашем случае вы по-прежнему будете использовать традиционные определения Python.
- Если вы используете дополнительные библиотеки (например
opencv
, например), вам, возможно, придется предоставить им каталог, -L
а затем указать имя используемой библиотеки -l
в флагах GCC. Для получения дополнительной информации см. Флаги GCC.