Problemas y soluciones en el proceso de empaquetado de pyinstaller como .exe

pyinsatller -F -w main.py 

Problema 1: el archivo .exe es demasiado grande

Comando de embalaje:

pyinsatller -F -w main.py 

Solución alternativa:
creó un nuevo entorno virtual donde se reinstalaron las bibliotecas necesarias .

Instale las dependencias del entorno virtual:

pip install virtualenv
pip install virtualenvwrapper-win

Encuentre dónde se encuentra su python.exe y cree un entorno virtual

mkvirtualenv -p="E:\\Python\python.exe" pyinenv

Ingrese cmd en el directorio de archivos que debe empaquetarse y use el siguiente comando para cambiar al entorno virtual

workon pyinenv

Use el comando python main.pypara ejecutar el programa principal que se va a empaquetar y descargue los módulos que faltan en secuencia de acuerdo con la ventana emergente.
Nota: debe reinstalar pyqt5 y pyqt5-tools, así como pyinstaller, etc., y no se informarán errores durante estas operaciones.

Al descargar, descubrí que cuda en torch ocupa mucha memoria. Simplemente cancelé la parte que usa cuda para acelerar en el código, borré torch-cuda y volví a descargar torch sin cuda, torchvision, etc.

Referencia: Resuelva el problema de que el archivo exe empaquetado es demasiado grande

Pregunta 2: pyinstaller no es compatible con la versión opencv-python

Una vez completado el empaquetado, aparece la siguiente ventana.
inserte la descripción de la imagen aquí
Solución : modifique la versión de opencv-python. pip install opencv-python==4.5.1.48
Estoy usando la versión de python y pyinstaller de la siguiente manera:

PyInstaller: 5.1
Python: 3.9.0
opencv-python:4.5.1.48

Pregunta 3: al abrir el archivo, indica que el archivo ***.pyd ya existe

inserte la descripción de la imagen aquí
Agregue el siguiente código entre a y p:

for b in a.binaries.copy():  # Traver the binaries.
    for d in a.datas:  #  Traverse the datas.
        if b[1].endswith(d[0]):  # If duplicate found.
            a.binaries.remove(b)  # Remove the duplicate.
            break

Después de la operación, reemplácelo con este comando de empaquetado:

pyinstaller main.spec

参考:El archivo de advertencia Pyinstaller --onefile ya existe pero no debería
参考:ADVERTENCIA: el archivo ya existe pero no debería: C:\Users\workAI\AppData\Local\Temp_MEI132522\torch_C参考:
Python】Python打包exe报错makespec options not válido cuando se proporciona un archivo .spec

Pregunta 4: cuando pyinstaller empaqueta, indica que UPX no está disponible.

Solución:
(1) Vaya al sitio web oficial https://upx.github.io/ y descargue UPX (la mía es la versión de Windows 64), la descarga es un paquete comprimido

(2) Descomprimir para obtener el archivo upx.exe

(3) Copie el archivo exe en el directorio pyinstaller.exe , el mío es C:\Users\HASEE\Envs\pyinenv\Scripts

Referencia: UPX no está disponible cuando los paquetes de pyinstaller

Finalmente, el embalaje está completo y se puede utilizar con éxito. (El proceso de empaquetado tomó alrededor de 4 minutos)
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Otro: Ver el método de configuración exitosa de CUDA

(1) En cmd, preste atención a la configuración del entorno cuda. ​​Estoy en el entorno pytorch aquí, por lo que el entorno pytorch debe activarse primero.
inserte la descripción de la imagen aquí
(2) Entrar en el archivo python

import torch
print(torch.cuda.is_available())

Devolver True indica que la configuración está completa.

Referencias para instalar CUDA y pytorch antes Referencia
:
1: Tabla de comparación de la versión de CUDA y la versión del controlador de la tarjeta gráfica (actualizada a 2022.10.26 - CUDA11.8)
2: Compruebe la versión de CUDA instalada
3: win10+Anaconda+pytorch+CUDA11.1 detallada guía de instalación
4: [Pytorch] instalación de pytorch (incluido el tutorial de instalación detallado de cuda)

yi , j = ∑ metro = 0 h − 1 ∑ norte = 0 w − 1 ∑ k = 0 do − 1 wm , norte , kxi + metro , j + norte , k + segundo y_{i,j}=\sum_{ m=0}^{h-1}\sum_{n=0}^{w-1}\sum_{k=0}^{c-1}w_{m,n,k}x_{i+m, j+n,k}+byyo , j=metro = 0h 1norte = 0w 1k = 0c 1wm , n , kXyo + metro , j + norte , k+b

Supongo que te gusta

Origin blog.csdn.net/ThreeS_tones/article/details/130656618
Recomendado
Clasificación