Hay dos formas de resolver su problema.
- Utilice un constructor estático, como congelar o
pyinstaller
, opy2exe
- Compilar usando
cython
Explicaré cómo puede hacerlo usando el segundo, ya que el primer método no es multiplataforma y versión, y se ha explicado en otras respuestas. Además, el uso de programas como pyinstaller generalmente da como resultado tamaños de archivo enormes, mientras que el uso de cython dará como resultado un archivo que tiene un tamaño de KB.
Primero, instale cython
. Luego, cambie el nombre de su archivo de Python (por ejemplo test.py
) a un .pyx
archivo
sudo pip install cython
mv test.py test.pyx
Luego, puede usarlo cython
junto con GCC para compilarlo ( cython
genera un archivo C a partir de un .pyx
archivo Python y luego GCC compila el archivo C)
(en referencia a 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
NOTA : Dependiendo de su versión de Python, es posible que deba cambiar el último comando. Para saber qué versión de Python está usando, simplemente use
$ python -V
Ahora tendrá un archivo binario 'prueba', que es lo que está buscando
Otras cosas a tener en cuenta :
- Cython se usa para usar definiciones de Variables de tipo C para la asignación de memoria estática para acelerar los programas de Python. Sin embargo, en su caso, seguirá utilizando las definiciones tradicionales de Python.
- Si está utilizando bibliotecas adicionales (como
opencv
, por ejemplo), es posible que deba proporcionarles el directorio usando -L
y luego especificar el nombre de la biblioteca usando -l
en las banderas GCC. Para obtener más información sobre esto, consulte las banderas de GCC