¿Cómo empaquetar la secuencia de comandos de Python en un archivo exe con más de 10 MB?

Prefacio

El texto y las imágenes de este artículo son de Internet y son únicamente con fines de aprendizaje y comunicación. No tienen ningún uso comercial. Si tiene alguna pregunta, comuníquese con nosotros para su procesamiento.

PD: Si necesita materiales de aprendizaje de Python, puede hacer clic en el enlace de abajo para obtenerlo usted mismo.

Materiales de aprendizaje gratuitos de Python y respuestas de comunicación grupal Haga clic para unirse


Embalaje estándar

En la actualidad, el método exe de empaquetado más común se implementa a través de Pyinstaller, este artículo también utilizará este método convencional. Si está familiarizado con esta área, puede deslizarse directamente a la segunda mitad de este artículo.

¿Por qué paquete?

Como todos sabemos, los scripts de Python no se pueden ejecutar en máquinas sin Python instalado.

Luego, si escribimos un pequeño script para análisis de datos / oficina automatizada, queremos compartirlo con mis colegas, pero su computadora no tiene Python instalado.

En este momento, si empaqueta el script en un archivo exe y se lo envía en WeChat, incluso si el intérprete de Python no está instalado en su computadora, el programa exe puede ejecutarse en él. ¿No es hermoso?

 

(Por supuesto, si desea construir una relación con Miss Sister ayudando a instalar Python, simplemente trátelo como no lo dije)

(Por supuesto, si desea construir una relación con Miss Sister ayudando a instalar Python, simplemente trátelo como no lo dije)

Instalar Pyinstaller

En primer lugar, tenemos que instalar Pyinstaller primero y usar el comando pip directamente en cmd

pip install pyinstaller 

Si la velocidad de la red es demasiado lenta, puede cambiar a fuentes domésticas para acelerar. Las otras partes de este artículo usarán directamente fuentes domésticas y no repetirán los comentarios.

 

pip install -i https://pypi.douban.com/simple/ pyinstaller #豆瓣源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller #清华源

Pasos de empaquetado de Pyinstaller

Coloque el script py_word.py, el archivo de formulario a procesar workbook.xlsx y la imagen del icono del software preparado chengzi.ico en el directorio F: \ py_word de mi computadora

 

 

1. CMD cambia al directorio donde acabamos de colocar el archivo.

 


2. Ejecute el comando Pyinstaller -F -w -i chengzi.ico py_word.py, el proceso de ejecución es muy largo y no hay imagen en movimiento.
Después de la ejecución, encontrará que el directorio actual tiene algunas carpetas más, abra la carpeta llamada dist entre ellas.

 

Se ha generado una aplicación exe llamada py_word, y el icono también es el patrón naranja que establecimos, que parece ser la mitad del éxito.

¿Qué tal ejecutarlo e intentar generar el informe diario de Word normalmente?

 

Ejecutar después de empaquetar exe

Ejecutar después de empaquetar exe

 

Se ejecuta correctamente, pero el archivo es un poco grande (339M)

 

Detalles de los parámetros de Pyinstaller

Hablando del comando recién ejecutado

Pyinstaller -F -w -i chengzi.ico py_word.py

Permítanme explicar los parámetros de Pyinstaller El parámetro -F significa hacer un programa ejecutable independiente.

-w significa que la línea de comando no se abrirá cuando se inicie el programa. Si no agrega el parámetro -w, habrá una ventana de consola de agujero negro. Por ejemplo, en el script que acabo de agregar agregué una línea de impresión ('¡Hola mundo!'), Luego no coloque el parámetro -w, de lo contrario, se informará un error al ejecutar, después de todo, ¡Hola mundo! impreso en la línea de comando. Además, el parámetro -w es muy útil en la interfaz GUI.

El último -i chengzi.ico se refiere a configurar su propio patrón de icono, porque la imagen empaquetada predeterminada es como la siguiente imagen. Este parámetro también se puede escribir como --icon = chengzi.ico

 

 

Finalmente, un pequeño resumen:

Pyinstaller -F py_word.py 打包exe

Pyinstaller -F -w py_word.py 不带控制台的打包

Pyinstaller -F -w -i chengzi.ico py_word.py 打包指定exe图标打包

Los tres anteriores son parámetros de uso más común, otros parámetros se detallan en la siguiente tabla

 

Lista de parámetros de Pyinstaller

Lista de parámetros de Pyinstaller

generación de imágenes ico

Me gusta poner mis propios iconos en el software que hago, pero ¿dónde hay tantas imágenes ico?

Una es encontrar un sitio web de imágenes ico dedicado, pero son muy pequeños y la biblioteca de imágenes también es muy pequeña.

La otra es que puedes generarlo tú mismo, aquí tienes un sitio web para que compartas imágenes en otros formatos en formato ico: https://app.xunjiepdf.com/img2icon/

conversión de formato de imagen ico

conversión de formato de imagen ico

 

Comprimido

Bien amigos

En el momento más emocionante, el archivo exe que se acaba de generar es demasiado grande y se necesita mucho esfuerzo para que un programa de software de más de 300M se transmita a través de WeChat.

También probé muchos métodos, como: modificar el empaquetado personalizado del archivo de especificaciones, el entorno virtual pipenv, el uso de compresión upx de código abierto, etc., pero a menudo el proceso es más problemático o la tasa de éxito no es alta (la compresión no es exitosa , todo depende del rostro).

Y lo que quiero compartir es el método más simple y exitoso que he estado usando-conda para crear un entorno virtual.

 

¿Por qué es tan grande el empaquetado de Python?

Antes de comprimir y empaquetar, hablemos brevemente sobre por qué Python está empaquetado demasiado grande.

El exe empaquetado de Python no solo es de gran tamaño sino también extremadamente lento. Los lenguajes interpretados son en su mayoría así, pero Python es particularmente prominente. Para resolver el problema de los problemas grandes y lentos, solo los lenguajes compilados como C, C ++ e incluso VB son mucho mejores. El tamaño más pequeño es ensamblador. [1]

Además, Zhihu dijo que se debía a que "hay muchas bibliotecas integradas en Anaconda, y muchos módulos innecesarios se empaquetan al empaquetar, y deben empaquetarse con Python puro".

Entonces podemos simular un nuevo entorno en el que solo se instalan los kits de herramientas necesarios para nuestro empaque.

¡El más adecuado es el entorno virtual!

Ambiente virtual

Hay muchas formas de crear entornos virtuales en Python, y yo soy un usuario fiel de Anaconda, si eres como yo, es simple. (También puede utilizar Virtualenv y Pipenv para configurar un entorno virtual y hacer un buen uso de la búsqueda, los métodos son similares).

Primero recuerda algunos comandos, es muy simple

conda create -n 虚拟环境名字 python==3.6  #创建虚拟环境

conda activate 虚拟环境名字  #激活虚拟环境

conda deactivate  #退出虚拟环境

Ejecute "Anaconda Prompt" desde el menú de inicio e ingrese las instrucciones para crear un entorno virtual en la interfaz que aparece. Se creó con éxito un entorno virtual llamado aotu y basado en la versión 3.6 de Python.

 

 

Necesita responder (y / n) durante el proceso de creación, Sí, luego activar el entorno virtual

 


El entorno virtual instalado por conda generará el directorio de entorno virtual bajo el directorio env bajo el directorio de instalación de anaconda.

 

Por supuesto, también podemos usar el comando conda info --envs en la ventana de ahora para ver todos los entornos virtuales en el entorno conda

Instalar las bibliotecas necesarias

Hemos creado y activado el entorno virtual llamado aotu arriba. Ingrese a conda list para ver las bibliotecas instaladas en el entorno virtual actual.

 

 

Abrimos el script de Python para empaquetarlo, comparamos la imagen de arriba y descubrimos que pandas, docx, estas dos bibliotecas deben instalarse adicionalmente. Por supuesto, la biblioteca pyinstaller esencial para empaquetar también es indispensable.

 

Script para empaquetar

Script para empaquetar


El proceso de instalación de la biblioteca no se repetirá

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

Cuida la instalación

 

 

Se ha instalado correctamente y hay algunas que se instalan con estas bibliotecas, así que ignórelas.

Pasos de empaquetado de Pyinstaller

No lo repetiré aquí, solo prueba con otro ícono de manzana

Pyinstaller -F -w -i apple.ico py_word.py

 

Generar

 

 

Comprimido correctamente a 29,8 M, si no importa pandas, debería ser más de 10 M

Ejecútalo, no hay problema

 

 

Finalmente, resuma brevemente todo el proceso de entorno virtual + empaquetado (solo tres pasos):

#创建虚拟环境
conda create -n aotu python=3.6

#激活虚拟环境
conda activate aotu

#Pyinstaller打包
Pyinstaller -F -w -i apple.ico py_word.py

Resume algunos pozos pequeños

1. Hablar de ello es todavía un poco metafísico, he realizado exactamente el mismo proceso anterior en ambas computadoras. Uno de ellos muestra que a la biblioteca le falta xlrd, que se empaquetó correctamente después de la instalación y tiene el mismo tamaño. Los amigos pueden obtener el archivo al final del artículo y probarlo también.

2. Al instalar la biblioteca, preste atención a algunos nombres de biblioteca, como docx, no instale pip docx, pero necesita

pip install python-docx

También hay algunas bibliotecas que pueden no estar disponibles debido a las diferentes versiones. Simplemente choca contra la pared.
3. Para evitar que algunas bibliotecas no se instalen al empaquetar, primero puede ejecutar el script Python en el entorno virtual. Empaquételo si funciona correctamente, que es más seguro.

 

 

4. Por último, si desea eliminar el entorno virtual, ejecute el siguiente comando

conda remove -n aotu--all 

5. Si está empaquetado como exe, intente elegir python3.6 + versión de 32 bits, porque el sistema win64-bit es compatible con programas de 32 bits, pero si no considera el sistema de 32 bits, no importa Puede empaquetar directamente la versión de python64-bit directamente, pero solo se puede ejecutar en el sistema win64.

Supongo que te gusta

Origin blog.csdn.net/pythonxuexi123/article/details/112986712
Recomendado
Clasificación