[Detalhes] arquivo exe compactado em python, pycharm+pyinstaller compactado com sucesso

Índice

Alvo

Ambiente de configuração

use o pyinstaller

Métodos empacotados sem recursos 

O método de empacotar arquivos py e recursos juntos

discutir 

referência


Alvo

1. Empacote os arquivos py com arquivos de recursos juntos em exe;

2. E o arquivo compactado deve ser o menor possível.

Ambiente de configuração

Se não houver limite para o tamanho do exe gerado, você pode usar o anaconda e muitos pacotes não utilizados serão inseridos juntos, o que não é recomendado. Use puro python + para instalar os pacotes necessários, o exe digitado será muito menor e será expandido dessa maneira.

1. Instale o python, estou usando win10+python3.7.0, endereço de download do python: Python Release Python 3.7.0 | Python.org A casa oficial da linguagem de programação Python https://www.python.org/downloads/release / python-370/

A interface é puxada para baixo:

 Selecione a instalação marcada na caixa vermelha e lembre-se de marcar Adicionar caminho às variáveis ​​de ambiente durante a instalação, e as variáveis ​​de ambiente serão adicionadas automaticamente. Se não estiver marcada, mas a instalação estiver concluída, não se preocupe. Por exemplo, o diretório onde você instalou o python3.7.0 está em D:\pythonHome. Clique com o botão direito do mouse em Meu computador->Configurações avançadas do sistema->Avançado->Variáveis ​​de ambiente->Selecione o caminho em Variáveis ​​do sistema, clique duas vezes->Novo, insira D:\pythonHome e crie um novo, insira D:\pythonHome\ Scripts, e pronto Configurações de variáveis ​​de ambiente.

Defina o ambiente pycharm para o ambiente python recém-instalado, consulte: pycharm modifique o ambiente python_fenghutu's blog-CSDN blog_pycharm modifique o ambiente python e entre na interface do ambiente de configuração de configurações Se você não conseguir encontrar o diretório de instalação do python, clique no botão em 5 , após selecionar o caminho para exibir a pasta oculta, clique em OK https://blog.csdn.net/fenghutu/article/details/104281609

É melhor reiniciar o pycharm, depois clicar no terminal do pycharm, primeiro entrar no python e verificar se o python é o python recém-instalado, se for o python do anaconda, haverá informações do anaconda nas informações do prompt, neste momento , é necessário bloqueá-lo primeiro com as variáveis ​​de ambiente do Anaconda. Ou pressione diretamente Shift + botão direito do mouse no diretório D:\pythonHome para executar "Abra a janela do powershell aqui", e o mesmo é verdadeiro para executar o comando de empacotamento neste local.

Na parte inferior da interface do Pycharm, você pode ver Terminal, selecione esta opção, esta é uma interface de terminal.

insira a descrição da imagem aqui 

 

Escreva o comando de entrada nesta interface: pip install pyinstaller para baixar o pyinstaller.

Durante o processo de download, você pode encontrar algumas mensagens de erro. Para obter soluções, consulte meus outros blogs:
Mensagem de erro comum 1:
Você está usando a versão 10.0.1 do pip, no entanto, a versão 20.0.2 está disponível. Você deve considerar a atualização por meio do Comando 'python -m pip install --upgrade pip'.
Prompt de erro comum 2:
objeto NoneType' não tem atributo 'bytes

Depois é instalar alguns pacotes necessários no código.

use o pyinstaller

Métodos empacotados sem recursos 

O comando inserido no terminal é: pyinstaller -w -F XXX.py 

Mas para iniciantes, há muitas coisas a serem explicadas aqui:
-w : Indica que a caixa preta do cmd (ou seja, a caixa preta da imagem) não aparecerá durante a execução do programa .exe gerado (nota: letras minúsculas!)

-F : Indica que você deseja empacotar todos os programas juntos e apenas um arquivo .exe será gerado. Esse arquivo é altamente integrado, mas a velocidade de execução é lenta; se você não escrever -F, haverá um monte de arquivos .dll gerados, então Existem muitos arquivos no programa, mas a velocidade de execução é relativamente rápida. Este também é o estilo do programa que costumamos usar (como mostrado na figura) (nota: maiúscula!)

insira a descrição da imagem aqui

 XXX.py : Refere-se ao programa de entrada de todo o seu projeto. Quando você escreve um projeto, é provável que seja uma programação de vários arquivos. Quando você usa qual arquivo como entrada para acessar todo o seu projeto, preencha o nome desse arquivo.

Após executar o comando pyinstaller -w -F XXX.py , serão geradas duas pastas: uma chamada build e a outra dist.

insira a descrição da imagem aqui 

Clique para abrir a pasta dist , haverá uma pasta com o nome do XXX que você preencheu e, em seguida, clique, você verá o arquivo XXX.exe.

 insira a descrição da imagem aqui

Neste ponto, se não houver outros arquivos de recursos que precisem ser empacotados juntos, exceto o arquivo py, teoricamente você gerou o arquivo executável .exe e isso é feito. Mas se você precisar empacotar arquivos de recursos juntos, precisará usar outro método.

O método de empacotar arquivos py e recursos juntos

O método usado aqui é modificar o arquivo .spec gerado, mas é errado verificar muitos blogs e provou ser possível após a modificação.

Adicione a seguinte função em seu próprio código primeiro, que é converter o método de escrita com o caminho do recurso no método de escrita oficial:

#coding:utf-8
import sys
import os

#生成资源文件目录访问路径
def resource_path(relative_path):
    if getattr(sys, 'frozen', False): #是否Bundle Resource
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

#访问res文件夹下a.txt的内容
filename = resource_path(os.path.join("res","a.txt"))

fieldname é o subcaminho que você precisa para chamar o recurso, por exemplo, o endereço do recurso é G:\temp\res\ a.txt, o caminho do filename pode estar no nível de res e o diretório raiz será gravado no arquivo .spec mais tarde.

A diferença do método sem recursos é que você precisa executar o comando para gerar o arquivo .spec primeiro, pyi-makespec -F test.py (se você quiser adicionar Ícone, etc., você pode usar pyi-makespec -- icon abc.jpg -F test.py para gerar um arquivo de especificação). Adicione o diretório raiz no pathex do arquivo .spec e adicione recursos em datas.

Por fim, basta executar pyinstaller xxx.spec , xxx.spec é o arquivo que acabou de ser modificado. Neste ponto, o processo de empacotamento com recursos está completo.

Prompt de erro comum um:

ImportError: não é possível importar o nome 'PackagePath' de 'importlib_metadata'

Prompt de erro comum dois: 

O exe do pacote Pyinstaller aparece PermissionError: [Errno 13] Permissão negada: 'C:\\...\xxx.dll

discutir 

Se a mensagem não for respondida a tempo, você pode participar da discussão em grupo:

 

referência

Como o Python gera arquivos exe? Use Pycharm para levá-lo a aprender passo a passo (super detalhado, super íntimo)_Nire_Yeyu's blog-CSDN blog_python para gerar arquivos exe

Erro de download do pyinstaller: você deve considerar a atualização por meio do comando 'python -m pip install --upgrade pip'._Nire_Yeyu's Blog-CSDN Blog

Erro Pycharm: o objeto 'NoneType' não tem nenhum atributo 'bytes'_Nire_Yeyu's Blog-CSDN Blog 

PyInstaller resolve ImportError: não é possível importar o nome 'PackagePath' de 'importlib_metadata'_小白tree's blog-CSDN blog  Pyinstaller package exe aparece PermissionError: [Errno 13] Permissão negada: 'C:\\...\xxx.dll_zhf's blog -CSDN blogue

Como o Pyinstaller empacota arquivos de recursos juntos em exe - darcymei - 博客园 (o método está errado)

Acho que você gosta

Origin blog.csdn.net/qq_36076233/article/details/122960071
Recomendado
Clasificación