para hacer ejecutable crear python compilation exe packaging software-distribution

hacer - Crear un solo ejecutable desde un proyecto de Python



hacer un ejecutable python para linux (2)

Estos son algunos de los más comunes. A menos que se indique explícitamente, todos los proyectos enumerados a continuación se mantienen activamente a partir de mi última edición (septiembre de 2017).

También incluí enlaces a sus respectivos sitios web, repositorios y listas de PyPi en caso de que quiera verificar por sí mismo la frecuencia con que se han actualizado.

Además, a menos que se indique lo contrario, todos los programas enumerados a continuación producirán un exe específicamente para el sistema operativo en el que se ejecuta. Por ejemplo, ejecutar Pyinstaller en Windows producirá un exe de Windows, pero al ejecutar Pyinstaller en Linux se generará un exe de Linux. Si desea producir un exe para múltiples sistemas operativos, tendrá que considerar el uso de máquinas virtuales o buscar el uso de algo como Wine .

Los siguientes programas funcionan todos de manera similar: agrupan Python y su programa, combinándolos eficazmente para producir un ejecutable.

  • PyInstaller:

    • Enlaces : Website || Repo || PyPi
    • Admite : Python 2.7 y Python 3.3 - 3.6 en Windows, Mac y Linux.
  • cx_Freeze:

    • Enlaces: Website || Repo || PyPi
    • Admite: Python 2.7 y 3.0 (?) - 3.6 en Windows, Mac y Linux.
    • Nota: la última versión de cx_Freeze para admitir Python 2.6 parece ser 4.3.4, lanzada en diciembre de 2016.
  • pyapp:

    • Enlaces: Website || Repo || PyPi
    • Admite: Python 2.7 y 3.3 - 3.4 (?) Solo en Mac.
    • Nota: a partir de mi última edición, no he podido determinar de manera concluyente si pyapp es compatible con Python 3.5 - 3.6.
  • py2exe :

    • Enlaces: sitio web || Repo || PyPi
    • Admite: solo Windows. La versión 0.6.9 es compatible con Python 2.4 - 2.7, y la versión 0.9.2.2 es compatible con Python 3.3 - 3.4 (?).
    • Otras notas: py2exe para Python 2 se actualizó por última vez en 2008, pero Py2exe para Python 3 se actualizó por última vez en octubre de 2014. La versión de PyPi solo admite Python 3.
  • bbfreeze :

    • Enlaces: Website || Repo || PyPi
    • Admite: Python 2.4 - 2.7 pero no Python 3 en Windows y Linux.
    • Otras notas: actualmente no tiene un mantenedor activo, y se actualizó por última vez en 2014.

Puede encontrar una comparación leve (?) Más detallada en The Hitchhiker''s Guide to Python: Congelar su código .

Por supuesto, esa no es la única forma de hacer las cosas:

  • Pynsist:

    • Enlaces: Website || Repo || PyPi
    • Apoyos: ¿ Todas las versiones de Python? Nota: solo creará instaladores de Windows .
    • Otras notas: Pynsist parece ser compatible con agrupar cualquier versión arbitraria de Python con su aplicación. Sin embargo, la herramienta en sí requiere Python 2.7 o 3.3+ para ejecutarse.

      Pynsist creará un instalador de Windows para su programa que instalará Python directamente en la computadora del usuario en lugar de agruparlo con su código y crear accesos directos que se vinculen a su secuencia de comandos de Python. Aunque este programa solo produce instaladores de Windows, parece que aún puede ejecutar Pynsist en computadoras Mac y Linux.

  • Nuitka:

    • Enlaces: Website || Repo (espejo de Github) || PyPi
    • Admite: Python 2.6 - 2.7 y Python 3.2 - 3.6 en Windows, Mac y Linux.
    • Otras notas: Nuitka literalmente compilará su código de Python y producirá un exe (a diferencia de los otros proyectos, que simplemente incluyen Python) para tratar de acelerar su código. Como efecto secundario, también obtendrá un práctico exe que puede distribuir. Tenga en cuenta que necesita tener un compilador C ++ disponible en su sistema.
  • cython:

    • Enlaces: Website || Repo || PyPi
    • Admite: Python 2.6 - 2.7 y Python 3.2 - 3.6 (?) En Windows, Mac y Linux.
    • Otras notas: Cython es similar a Nuitka en que es un compilador de Python. Sin embargo, en lugar de compilar directamente su código, lo compilará en C. A continuación, puede tomar ese código C y convertir su código en un exe . Necesitarás tener un compilador de C disponible en tu sistema.

Mi preferencia personal es usar PyInstaller, ya que fue el más fácil para mí ponerme en funcionamiento, fue diseñado para funcionar bien con varias bibliotecas populares, como numpy o pygame, y tiene una gran compatibilidad con varios sistemas operativos y versiones de Python.

Sin embargo, también he creado varios archivos con cx_Freeze y py2exe sin demasiada dificultad, por lo que también debes considerar la opción de eliminarlos.

Todavía no he tenido la oportunidad de probar Pynist, Nuitka o Cython exhaustivamente, pero parecen ser soluciones bastante interesantes e innovadoras. Si tiene problemas para usar el primer grupo de programas, podría valer la pena probar uno de estos tres. Dado que funcionan fundamentalmente de forma diferente a los programas Pyinstaller / cx_freeze-style, pueden tener éxito en aquellos casos de bordes impares donde falla el primer grupo.

En particular, creo que Pynist es una buena manera de eludir todo el tema de la distribución del código: Macs y Linux ya tienen soporte nativo para Python, y simplemente instalar Python en Windows podría ser realmente la solución más limpia. (La desventaja ahora es que debe preocuparse por seleccionar múltiples versiones de Python + instalar bibliotecas).

Nuitka y Cython (en mi experiencia limitada) parecen funcionar bastante bien. Una vez más, yo mismo no los he probado exhaustivamente, por lo que mi principal observación es que parecen tardar mucho más en producir un exe que los programas de estilo "congelar".

Como nota final, si solo desea admitir Linux, puede considerar crear un paquete de distribución para su paquete, en lugar de convertirlo en un ejecutable. Las herramientas de listado que pueden ayudarlo a hacer esto están más allá del alcance de esta publicación, pero aquí hay algo de material de lectura si decide explorar esta ruta.

Quiero crear un solo ejecutable desde mi proyecto de Python. Un usuario debería poder descargarlo y ejecutarlo sin necesidad de instalar Python. Si solo estuviera distribuyendo un paquete, podría usar pip, wheel y PyPI para compilarlo y distribuirlo, pero esto requiere que el usuario tenga Python y sepa cómo instalar paquetes. ¿Qué puedo usar para construir un ejecutable autónomo de un proyecto de Python?


pyinstaller aún está en desarrollo activo. Puede ver los últimos cambios en GitHub.

Tiene soporte para las tres principales plataformas:

  • Windows (32 bits y 64 bits)
  • Linux (32 bits y 64 bits)
  • Mac OS X (32 bits y 64 bits)

y es compatible con las versiones 2.6 y 2.7 de Python. No es compatible con Python 3, pero hay una rama experimental de Python 3 .

Actualizar

A partir de la versión 3.2.1 es compatible con Python 2.7, 3.3-3.5