Есть два способа решить вашу проблему
- Используйте статический строитель, например заморозку, или
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.