Problemas e soluções no processo de empacotamento do pyinstaller como .exe

pyinsatller -F -w main.py 

Problema 1: O arquivo .exe é muito grande

Comando de empacotamento:

pyinsatller -F -w main.py 

Solução alternativa:
criou um novo ambiente virtual onde as bibliotecas necessárias foram reinstaladas .

Instale as dependências do ambiente virtual:

pip install virtualenv
pip install virtualenvwrapper-win

Encontre onde seu python.exe está localizado e crie um ambiente virtual

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

Digite cmd no diretório do arquivo que precisa ser empacotado e use o seguinte comando para alternar para o ambiente virtual

workon pyinenv

Use o comando python main.pypara executar o programa principal a ser compactado e baixe os módulos ausentes na sequência de acordo com o pop-up.
Nota: Você precisa reinstalar pyqt5 e pyqt5-tools, bem como pyinstaller, etc., e nenhum erro será relatado durante essas operações.

Ao fazer o download, descobri que o cuda na tocha ocupa muita memória, simplesmente cancelei a parte que usa cuda para acelerar no código, e apaguei o arch-cuda e baixei novamente a tocha sem cuda, archivision, etc.

Referência: Resolva o problema de o arquivo exe compactado ser muito grande

Pergunta 2: o pyinstaller não é compatível com a versão opencv-python

Depois que a embalagem estiver concluída, a seguinte janela será exibida.
insira a descrição da imagem aqui
Solução : Modifique a versão do opencv-python pip install opencv-python==4.5.1.48
que estou usando a versão do python e pyinstaller da seguinte forma:

PyInstaller: 5.1
Python: 3.9.0
opencv-python:4.5.1.48

Pergunta 3: Ao abrir o arquivo, ele informa que o arquivo ***.pyd já existe

insira a descrição da imagem aqui
Adicione o seguinte código entre a e 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

Após a operação, substitua-o por este comando de empacotamento:

pyinstaller main.spec

Aviso: O arquivo de aviso Pyinstaller --onefile já existe, mas não deveria.
Aviso: O arquivo já existe, mas não deveria : C:\Users\workAI\AppData\Local\Temp_MEI132522\torch_C
参考:【Python】Python打包exe报错makespec options not válido quando um arquivo.spec é fornecido

Pergunta 4: Quando o pyinstaller empacota, ele informa que o UPX não está disponível.

Solução:
(1) Acesse o site oficial https://upx.github.io/ e baixe o UPX (o meu é a versão Windows 64), o download é um pacote compactado

(2) Descompacte para obter o arquivo upx.exe

(3) Copie o arquivo exe para o diretório pyinstaller.exe , o meu é C:\Users\HASEE\Envs\pyinenv\Scripts

Referência: UPX não está disponível quando pacotes pyinstaller

Finalmente, a embalagem está completa e pode ser usada com sucesso. (O processo de embalagem demorou cerca de 4 minutos)
insira a descrição da imagem aqui
insira a descrição da imagem aqui

Outro: Veja o método de configuração bem-sucedida do CUDA

(1) No cmd, preste atenção na configuração do ambiente cuda. ​​Estou no ambiente pytorch aqui, então o ambiente pytorch deve ser ativado primeiro.
insira a descrição da imagem aqui
(2) Entre no arquivo python

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

Retornar True indica que a configuração está completa.

Referências para instalar CUDA e pytorch antes da Referência
:
1: Tabela de comparação da versão CUDA e versão do driver da placa gráfica (atualizada para 2022.10.26 - CUDA11.8)
2: Verifique a versão CUDA instalada
3: win10+Anaconda+pytorch+CUDA11.1 Detalhado guia de instalação
4: [Pytorch] instalação do pytorch (incluindo o tutorial de instalação detalhado do cuda)

yi , j = ∑ m = 0 h − 1 ∑ n = 0 w − 1 ∑ k = 0 c − 1 wm , n , kxi + m , j + n , k + b 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}+byeu , j=m = 0h - 1n = 0w - 1k = 0c - 1cm , n , kxi + m , j + n , k+b

Acho que você gosta

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