Tutorial de Pyinstaller estilo niñera para convertir fácilmente scripts de Python en programas ejecutables

Prefacio

Recientemente, un colega de operaciones preguntó cómo implementar múltiples aperturas empresariales de WeChat y otros problemas. Después de implementarlo a través del código Python, debido a que depende del entorno Python y el módulo pywin32, el sistema considerado es Windows, por lo que generar un archivo ejecutable es el más aceptable para él. Así que elige usar Pyinstaller

Instalar Pyinstaller

  1. Descargue Python, dirección de descarga correspondiente: python3.7

  2. Instale el módulo Pyinstaller

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

El parámetro -i resuelve el problema de cambiar la fuente de pip. La elección actual es la fuente pypi de la Universidad de Tsinghua. Si necesita más información, puede consultar Python para modificar la fuente de pip a la fuente doméstica.

Descripción de parámetros comunes de Pyinstaller

parámetro ilustrar Observación
-F -onefile está empaquetado en un solo archivo para generar un programa ejecutable exe No se recomienda usarlo porque cuando su código es complejo e involucra múltiples archivos py, el archivo de configuración no puede cumplir con los requisitos o la operación es problemática.
-D -onedir empaqueta varios archivos y generará muchos archivos de dependencia y archivos exe en el directorio dist. Se recomienda utilizar principalmente
-i -icon genera el icono del programa exe Varios sitios web ico de conversión de imágenes
-pag -path establece la ruta de importación. Utilice punto y coma en Windows y dos puntos en Linux. Al importar varios archivos py, debe especificar la ruta o, a veces, cuando Pyinstaller no puede encontrar el paquete, debe especificar la importación o establecer la ruta de importación.
-norte -name nombre del proyecto, si se omite, el nombre del archivo
-agregar datos Agregar archivo de datos Ejemplo de uso --add-data=".\xxxx.xx;.", tenga en cuenta que hay punto y coma y .

regala una castaña

pyinstaller.exe -i .\w.ico -w .\testmain.py .\pywinhandle.py -n customizeProject --add-data=".\config.json;." -p C:\xampp7\htdocs\launcher\src;

En este momento, se generarán los archivos dist, directorios de compilación y archivos de especificaciones. Los archivos exe específicos están en el directorio dist, como se muestra en la siguiente figura.
Insertar descripción de la imagen aquí

explicación del archivo de especificaciones

Este archivo se genera después de ejecutar el comando anterior, es similar a docker-compose.yml, para resolver el proyecto no es necesario ingresar comandos y parámetros relevantes, logrando así una compilación rápida.

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(
    ['testmain.py', 'pywinhandle.py'],  
    pathex=['C:\\xampp7\\htdocs\\launcher\\src'], # 路径
    binaries=[],
    datas=[('.\\config.json', '.')],  # --add-data 格式为 ('.\\config.json', '.')
    hiddenimports=[],
    hookspath=[],
    hooksconfig={
    
    },
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='customizeProject', # -n 名称
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=False, 
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=['w.ico'], # -i 
)
coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='customizeProject', # -n 名称
)

Puede modificar este archivo más tarde y ejecutar el siguiente comando (equivalente al comando anterior)

pyinstaller.exe .\customizeProject.spec

Problemas que puede encontrar

  1. icon El ícono no se actualiza a tiempo. La razón es que el sistema Windows tiene un problema de caché. En este caso, simplemente cambie el nombre del proyecto;
  2. Se recomienda hacer una copia de seguridad del archivo de especificaciones después de modificarlo después de la primera ejecución, porque el archivo de especificaciones se regenerará cuando se ejecute nuevamente el primer comando y el archivo original desaparecerá a menos que -n se actualice cada vez;
  3. Si la ejecución del archivo exe no regresa, puede usar la consola para ingresar al programa correspondiente y verificar los errores correspondientes;

Supongo que te gusta

Origin blog.csdn.net/weixin_43832080/article/details/127800659
Recomendado
Clasificación