Utilice pyinsatller para publicar un proyecto de programa de Python como un archivo ejecutable

Utilice pyinsatller para publicar un proyecto de programa de Python como un archivo ejecutable

 

Python es un lenguaje de scripting, es decir, un lenguaje interpretado. Necesita un intérprete para interpretarlo antes de que pueda ejecutarse. El código fuente de Python debe ejecutarse en la máquina virtual Python, pero los programas que hacemos no pueden ser utilizados por los usuarios. En ese momento, se le pidió que instalara un entorno Python, por lo que hoy explicamos cómo empaquetar un programa Python en un archivo ejecutable exe, puede usar el módulo pyinsatller. Sitio web oficial http://www.pyinstaller.org/

Primero introduzca la instalación y el uso del módulo pyinsatller , y luego dé un ejemplo de lanzamiento.

Instale el módulo pyinsatller

Abra una ventana de línea de comando e ingrese el siguiente comando

pip instalar pyinstaller

Espere a que se instale pyinstaller, consulte la siguiente figura:

 

El comando pyinstaller usa brevemente el formato:

PyInstaller -p路径-F -w [-i icofile] archivo

entre ellos:

-p ruta, que indica la ubicación del módulo dependiente (o biblioteca), su ubicación está en la carpeta site-packages de la ruta de instalación de Python,

[Vea la ruta de instalación de Python, consulte https://blog.csdn.net/cnds123/article/details/101546889

Para resolver el "ModuleNotFindError" que aparece al ejecutar el programa exe después de empaquetar pyinstaller, consulte el archivo ejecutable exe empaquetado por pyinstaller, no se puede encontrar el módulo. Solución https://blog.csdn.net/weixin_44297303/article/details / 99059299  ]

-F: Solo se genera un archivo, no se expone otra información y el inicio es más lento. -D: Genera una carpeta con modo de múltiples archivos e inicio rápido.

-w: Paquete en modo ventana sin mostrar la consola.

filename indica que tu es el nombre del programa py principal, que puede incluir una ruta.

-w significa ocultar la ventana de la línea de comandos cuando el programa se está ejecutando (habrá una ventana negra sin -w)

Los parámetros entre paréntesis son parámetros opcionales. -I icofile significa agregar un icono al programa. El icono debe estar en formato .ico. Icofile significa la ubicación del icono. Se recomienda ponerlo directamente en la carpeta del programa, por lo que que el nombre del archivo se escribe directamente al empaquetar.

 

A continuación se ofrece un ejemplo de publicación.

La estructura del proyecto que quiero publicar es la siguiente:

El archivo de código fuente bird.py es el siguiente:

import pygame
pygame.init()#初始化操作
#保存窗口大小
width,height=600,400
screen=pygame.display.set_mode([width,height])#创建游戏窗口

#设置窗口标题
pygame.display.set_caption("愤怒的小鸟")

#加载小鸟素材
player=pygame.image.load("xiaoniao.png")

#获取图像矩形位置
rect=player.get_rect()

#声明XY运动速度的列表
speed = [3,2]

left_head = pygame.transform.flip(player,True,False)
right_head = player
#无限循环
while True:
    for event in pygame.event.get():
        if event.type ==pygame.QUIT:
            exit()
        if event.type ==pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player = left_head #小鸟的头向左
                speed=[-2,1]
            if event.key == pygame.K_RIGHT:
                player = right_head #小鸟的头向左
                speed=[2,1]
            if event.key == pygame.K_UP:
                player = left_head #小鸟的头向左
                speed=[2,-1]
            if event.key == pygame.K_DOWN:
                player = right_head #小鸟的头向左
                speed=[2,1]

    rect =rect.move(speed)
    if rect.right>width or rect.left<0:
        #将图片水平翻转             反转对象 是否水平反转 是否垂直翻转
        player = pygame.transform.flip(player,True,False)
        speed[0]=-speed[0]

    if rect.bottom>height or rect.top<0:
        speed[1]=-speed[1]



    screen.fill((255,255,255))
    screen.blit(player,rect)
    pygame.display.update()
    pygame.time.delay(10)

Imagen xiaoniao.png:

Se recomienda (esto no es necesario) ejecutar primero el proyecto de prueba con IDEL para ver si es normal

Si hay un error que
indica ModuleNotFoundError: No hay módulo llamado 'pygame'
, instale pygame
pip install pygame

Si funciona con normalidad, consulte la figura siguiente:

 

Verifique que el programa sea correcto, puede usar pyinsatller para publicarlo como un archivo ejecutable:

En la ventana cmd (línea de comando), use el comando cd para ingresar a la carpeta del programa

CD / DD: \ Python Angry Birds toca el borde y rebota

 

Ingrese el siguiente comando para iniciar la conversión

pyinstaller -p C: \ Users \ Wang \ AppData \ Local \ Programs \ Python \ Python38 \ Lib \ site-packages -F -w bird.py

Debido a que el módulo pygame (paquete) se usa en el código fuente, use -p C: \ Users \ Wang \ AppData \ Local \ Programs \ Python \ Python38 \ Lib \ site-packages para indicar la ubicación del módulo pygame (paquete) .

Una vez completada la entrada, presione Intro y se iniciará el empaquetado automático. El primer proceso de empaquetado puede ser lento

Tenga en cuenta que el archivo adjunto indica la ubicación del archivo exe generado.

Después de un empaquetado exitoso, se generan tres carpetas en el directorio actual y el archivo EXE generado se encuentra en la carpeta dist. Vea la imagen a continuación:

 

[Sugerencia, el archivo exe convertido es muy grande

Método de reducción: use qué función para importar qué función, no importe toda la biblioteca, ya que esto empacará toda la biblioteca y las funciones de la biblioteca no utilizadas ocuparán mucho espacio.

 

Como correr

Coloque el archivo ejecutable generado , aquí está bird.exe y el archivo de recursos que utiliza, aquí está el archivo de imagen xiaoniao.png , en el mismo directorio, y luego haga doble clic en bird.exe para ver el efecto.

 

Materiales de estudio adicionales:

Documentación de ayuda oficial de Pyinstaller https://pyinstaller.readthedocs.io/en/stable/usage.html

Resumen de los métodos de archivo exe de empaquetado de Python [4 tipos] https://blog.csdn.net/lzy98/article/details/83246281

 

Supongo que te gusta

Origin blog.csdn.net/cnds123/article/details/115254418
Recomendado
Clasificación