Índice
Métodos empacotados sem recursos
O método de empacotar arquivos py e recursos juntos
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.
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!)
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.
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.
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
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)