Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo Python genera archivos ejecutables

Cómo Python genera archivos ejecutables

Python es un lenguaje de scripting que es interpretado y ejecutado por un intérprete. Se publica de la siguiente manera:

archivo .py: para proyectos de código abierto o proyectos donde el código fuente no es tan importante, el código fuente se proporciona directamente y los usuarios deben instalar Python ellos mismos e instalar los distintos bibliotecas de las que dependen. (El paquete de instalación oficial de Python hace esto)

Archivo .pyc: algunas empresas o individuos no quieren que el operador vea el código fuente debido a la confidencialidad o por varias razones. Pueden usar archivos pyc para publicar. pyc El archivo es un código binario que el intérprete de Python puede reconocer, por lo que al publicar en varias plataformas, los usuarios deben instalar la versión correspondiente de Python y las bibliotecas dependientes.

Archivos ejecutables: para los no programadores o los usuarios nuevos en Python, instalar una aplicación Python con una gran cantidad de bibliotecas dependientes puede ser un desastre. La forma más sencilla es proporcionar un archivo ejecutable que le indique cómo utilizarlo. La cuestión es que necesitas empaquetar diferentes ejecutables para diferentes plataformas (Windows, Linux, Mac...). Windows, Linux, Mac...).

Este artículo analiza principalmente la última forma. .py y .pyc son relativamente simples y pueden ser manejados por el propio Python. Hay muchas formas de empaquetar scripts de Python en archivos ejecutables. Este artículo presenta principalmente PyInstaller. Otros métodos son solo para comparación y referencia.

Congelar su código

A continuación se muestra una comparación de varias herramientas de empaquetado (extraído del artículo Congelar su código):

Solución

Windows

p>

Linux

OS X

Python 3<

Licencia

Modo de un archivo

Importación de archivos zip

Huevos

Soporte de pkg_resources

bbFreeze sí sí sí sí sí no MIT no sí sí sí

py2exe sí no sí sí sí sí MIT sí sí no no

pyInstaller Sí Sí Sí Sí No GPL Sí Sí No

cx_Freeze Sí Sí Sí Sí Sí Sí PSF No Sí No

py2app No Sí Sí Sí Sí MIT No Sí Sí Sí

PS.pyInstaller y cx_Freeze son buenos. Alguien en stackoverflow sugirió que cx_Freeze sea más conveniente. Las versiones más nuevas de pkg_resources y pyInstaller parecen ser mejores.

Instalación de PyInstaller

Para aquellos que tienen una conexión de red estable y pueden usar con éxito la dirección de origen de pip, el siguiente comando será suficiente: pip install pyinstaller

Por lo general, descargaremos el paquete de código fuente, luego ingresaremos al directorio del paquete y ejecutaremos el siguiente comando (setupools): python setup.py install

Una vez completada la instalación, verifique si la instalación se realizó correctamente: pyinstaller --version

Después de una instalación exitosa, puede usar el siguiente comando:

pyinstaller? El comando principal para empaquetar archivos ejecutables, como se describe a continuación.

pyi-archive_viewer? Ver la lista de archivos en el paquete.

ppyi-bindepend?: Ver la biblioteca de enlaces dinámicos (archivo .so o .dll) de la que depende el archivo ejecutable

ppyi-......?: etc.

Usando PyInstaller

Sintaxis de pyinstaller: pyinstaller [opciones] script [script...] | specfile

La forma más fácil de usar PyInstaller es usarlo con myscript Ejecute este comando en el mismo directorio. py:pyinstaller myscript.py

Verá que se han agregado dos nuevos directorios: build y dist. Los archivos en el directorio dist son archivos ejecutables que puede distribuir. Para el comando anterior, encontrará un montón de archivos en el directorio dist, incluidos varios archivos de biblioteca de enlaces dinámicos y archivos ejecutables de myscrip. A veces resulta muy problemático. Debe empaquetar todos los archivos en dist antes de publicarlos. Si se pierde la biblioteca de enlaces dinámicos, no se ejecutará. Afortunadamente, pyInstaller admite el modo de archivo único. Solo necesita ejecutar: pyinstaller -F mycript .py.

Descubrirá que solo hay un archivo ejecutable en dist.

Descubrirá que solo hay un archivo ejecutable en dist, y este archivo ejecutable está listo para ser distribuido y puede ejecutarse en un sistema operativo similar al que está utilizando.

Por supuesto, pyInstaller tiene una variedad de opciones, incluidas algunas opciones comunes, como la opción -d para depuración, que le permite comprender el proceso de ejecución de pyInstaller; también hay opciones para diferentes plataformas; puedes acceder a PyInstaller. Consulta la WIKI oficial para conocer su uso.

Al ejecutar el comando pyInstaller, se generará un archivo .spec en el mismo directorio que el script. Este archivo le indicará a pyInstaller cómo procesar todos sus scripts y también contiene opciones de comando. Normalmente, no necesitamos preocuparnos con este archivo, pero si necesita empaquetar un archivo de datos o agregar algunas opciones de tiempo de ejecución de Python en el binario empaquetado... Para algunas opciones de empaquetado avanzadas, debe editar manualmente el archivo .spec archivo . Esto se puede hacer usando: script de opciones ppyi-makespec [script...]

Cree un archivo .spec, para archivos .spec editados manualmente podemos usar cualquiera de los siguientes métodos: script de opciones pyi-makespec [script...]

Crea un archivo .spec. Para archivos .spec editados manualmente, podemos usar cualquiera de los siguientes comandos: pyinstaller specfile pyi-build specfile

Introducción a PyInstaller

Descripción de PyInstaller

PyInstaller es en realidad Empaquetar el analizador de Python y sus propios scripts en un ejecutable es completamente diferente a compilarlos en código de máquina real. La ventaja de esto es que no tiene que instalar Python ni las bibliotecas de las que depende en la máquina en la que ejecuta su programa. . Bibliotecas de las que depende su script. En Linux, utiliza principalmente los comandos ldd y objdump del paquete de herramientas binutil.

PyInstaller ingresará el script que usted especifique, primero analizará los otros scripts de los que depende, luego buscará, copiará y recopilará todos los scripts relacionados, incluido el analizador de Python, y luego los colocará en un directorio o los empaquetará en Un archivo ejecutable.

Puedes publicar el resultado como una carpeta completa dentro de una carpeta o como un archivo ejecutable generado.

Todo lo que necesita hacer es decirle al usuario que su aplicación es autónoma y no requiere la instalación de paquetes adicionales o versiones específicas de Python, y luego estará lista para ejecutarse.

Cabe señalar que PyInstaller solo empaqueta archivos ejecutables en el mismo entorno que el sistema de la máquina empaquetadora. En otras palabras, no es portátil y si necesita ejecutarlo en un sistema diferente, debe empaquetarlo para esa plataforma.

Materiales de referencia