Pular para o conteúdo
Skillpedia
Código em geral280 mil · #196

generating-python-installer

Cria instaladores de programas Python para Windows que são pequenos e iniciam rapidamente. É ideal para distribuir aplicativos Python como um pacote profissional e eficiente.

O que ela faz

Este agente ajuda a transformar seu programa Python em um instalador para Windows. Ele foca em fazer o instalador o menor e mais rápido possível, usando ferramentas avançadas.

Quando usar

  • ✓Quando você precisa distribuir um programa Python para usuários Windows.
  • ✓Se você quer que o instalador do seu programa seja o menor possível.
  • ✓Se a velocidade de inicialização do seu programa é muito importante.

Exemplo do que pedir para a IA

“Transforme meu programa Python em um instalador pequeno e rápido para Windows.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/affaan-m/ECC/blob/main/skills/generating-python-installer/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/skills/generating-python-installer/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele usa ferramentas como Nuitka para compilar seu código Python de forma otimizada e o Inno Setup para criar um pacote de instalação profissional. O processo inclui a remoção de arquivos desnecessários e a análise de bibliotecas para reduzir o tamanho final.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add affaan-m/ECC --skill generating-python-installer

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/generating-python-installer/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Gerando Instalador Python (Nível Comercial)

Você é um especialista em implantação comercial de Python. Seu objetivo é o instalador Windows menor, mais rápido para iniciar e mais limpo. A abordagem principal é "Modo de pasta Nuitka (dist) + Empacotamento Inno Setup" — sem compilações em arquivo único, sem janelas de console perdidas.

Quando Ativar

Ative quando o usuário solicitar explicitamente empacotamento avançado de Python ou otimização de tamanho/inicialização no Windows:

  • Compilação Nuitka extrema / nível comercial, compilações de menor tamanho ou inicialização mais rápida
  • dist redução de pasta, análise de pegada de DLL, trocas de tamanho entre 32 bits e 64 bits
  • Empacotamento Inno Setup com metadados completos e desinstalação limpa e sem resíduos

Esta habilidade visa otimização avançada de tamanho/inicialização — não conversão básica de "script para exe" em arquivo único.

Como Funciona

  1. Confirme os parâmetros de compilação — nome do aplicativo, versão, publicador, nome do executável, diretórios de origem/saída, ícone. Nunca preencha automaticamente; pergunte ao usuário.
  2. Verifique a compilação de origem — console desativado, LTO ativado, runtime VC++ presente.
  3. Compile com Nuitka usando a estratégia de exclusão de módulos e plugins abaixo.
  4. Reduza a pasta dist — remova símbolos de depuração, caches, testes e documentação, com salvaguardas para metadados necessários em tempo de execução.
  5. Analise DLLs para encontrar e reduzir as maiores dependências.
  6. Empacote com Inno Setup — compressão LZMA2 ultra, metadados completos, desinstalação sem resíduos e um redistribuível VC++ compatível com a arquitetura.

Exemplos

  • "用 Nuitka 把这个 PySide2 项目打成最小体积的商业安装包" → execute o fluxo de trabalho completo: recomende 32 bits, exclua WebEngine/3D/Charts, reduza dist, empacote com Inno Setup.
  • "我的 exe 有 400 MB,怎么瘦身到一半" → analise DLLs, mude para opencv-python-headless, remova opengl32sw, aplique redução dist.
  • "安装后在纯净系统打不开" → garanta que o redistribuível VC++ de arquitetura correspondente esteja incluído no script Inno Setup.

Ideia Central

Aderir à abordagem "Modo de pasta Nuitka (dist) + Empacotamento Inno Setup". Recusar versão em arquivo único, recusar janela preta.


Referência de Caso Prático (Aplicação Desktop PySide2 de Nível de Produção, 323 MB, Incluindo OpenCV / Playwright)

Visão Geral do Projeto

  • Tamanho Total: 323 MB
  • Ferramenta de Empacotamento: PyInstaller 4.7 (32 bits)
  • Dependências Principais: PySide2 (22.52 MB), OpenCV (62.38 MB), Playwright (76.74 MB)
  • Versão Python: Python 3.8 (32 bits)
  • Número de DLLs: 71, totalizando 93.23 MB

Estratégias Chave de Otimização

  1. PASS: Usar Python 32 bits → Redução de tamanho de 20-30%
  2. PASS: Compressão do padrão de biblioteca base_library.zip → 0.74 MB
  3. PASS: Exclusão de Módulos Essenciais → Sem pytest/unittest/setuptools
  4. PASS: Exclusão de Plugins Qt Essenciais → Apenas plugins necessários

Distribuição de Tamanho

Componente Tamanho Porcentagem Sugestão de Otimização
playwright 76.74 MB 23.8% Remover se não for necessário
OpenCV 62.38 MB 19.3% Usar opencv-python-headless
PySide2 22.52 MB 7.0% Excluir WebEngine/3D/Charts
Outras Dependências 161.36 MB 49.9% -

Comparação de Efeito Esperado

Tipo de Projeto Nuitka Original Otimizado Teste Prático de Projeto de Referência
Tkinter + Biblioteca Padrão 150-250 MB 80-120 MB -
PyQt/PySide 200-400 MB 120-250 MB 323 MB (incluindo OpenCV, etc.)
Incluindo numpy/pandas 300-600 MB 180-350 MB -

Fluxo de Trabalho Principal (Workflow) - ATENÇÃO: Executar Rigorosamente

Ao solicitar o empacotamento, siga estas etapas:

Etapa 1: Confirmação Forçada de Parâmetros (FALHA: Proibido usar valores padrão)

ATENÇÃO: Regra Importante: Todos os parâmetros abaixo devem ser confirmados com o usuário um por um, proibido preenchimento automático ou uso de valores padrão!

Você deve perguntar e confirmar as seguintes informações com o usuário (continue somente após a resposta explícita do usuário):

Parâmetro Descrição Exemplo
Nome do Software (App Name) Nome de exibição do software 红墨批注
Número da Versão (Version) Número de versão semântica 1.0.0
Nome do Publicador/Empresa (Publisher) Publicador exibido no Painel de Controle YourCompany
Nome do Executável Principal (Exe Name) Nome do arquivo executável principal RedInk.exe
Caminho da Origem (Source Dir) Caminho absoluto da pasta Nuitka dist D:\project\dist
Caminho de Saída (Output Dir) Local de geração do pacote instalador D:\project\output
Caminho do Ícone (Icon Path) Caminho absoluto do arquivo .ico (opcional, mas recomendado) D:\project\icon.ico
Endereço do Site Oficial (URL) Opcional, para link no Painel de Controle https://example.com

Modelo de Pergunta:

"Por favor, forneça os seguintes parâmetros de empacotamento, preciso que você confirme um por um:

  1. Nome do Software:
  2. Número da Versão:
  3. Nome do Publicador/Empresa:
  4. Nome do Arquivo Executável Principal (ex: xxx.exe):
  5. Caminho da Origem (pasta Nuitka dist):
  6. Caminho de Saída (local de salvamento do pacote instalador):
  7. Caminho do Ícone (.ico, pode deixar em branco):
  8. Endereço do Site Oficial (pode deixar em branco):

Por favor, preencha um por um, ou responda 'pular' para usar um valor vazio."

Etapa 2: Verificação da Qualidade e Compilação dos Arquivos de Origem (Crucial) Antes de gerar o código, você deve emitir a seguinte confirmação chave para o usuário (pois o Inno Setup é apenas uma ferramenta de empacotamento e não pode alterar os atributos de execução do programa em si):

"ATENÇÃO: Verificação dos Parâmetros de Compilação:

  1. Sem Janela Preta: Por favor, confirme que sua pasta dist foi compilada usando nuitka --windows-console-mode=disable. (Caso contrário, uma janela preta ainda aparecerá após a instalação)
  2. Alto Desempenho: Por favor, confirme se --lto=yes foi usado. (Caso contrário, a velocidade de inicialização pode não ser ideal)
  3. Runtime: Por favor, certifique-se de que o runtime VC++ necessário já esteja incluído na pasta dist para evitar falhas em sistemas limpos.

Por favor, responda 'Confirmar' se os arquivos de origem estiverem prontos, caso contrário, recompile primeiro."

Etapa 3: Geração do Código Após a confirmação do usuário, gere o código com metadados completos e correção do ícone de desinstalação.


Otimização Extrema de Compilação Nuitka (Baseado na Experiência de Projetos de Referência)

I. Estratégia de Seleção 32 bits vs 64 bits

Razões para o Projeto de Referência Usar Python 32 bits:

Componente Tamanho 64 bits Tamanho 32 bits Economia
python3x.dll ~4.5 MB ~3.8 MB 15%
Qt5Core.dll ~8 MB ~5 MB 37%
numpy ~30 MB ~20 MB 33%
Total Base -20~30% -

Condições Recomendadas para Usar 32 bits:

  • PASS: Ocupação de memória do programa < 2GB
  • PASS: Não processa arquivos muito grandes (< 2GB)

…

Perguntas frequentes

Isso serve para criar um único arquivo executável?

Não, este agente foca em criar instaladores com uma pasta de arquivos e um desinstalador limpo, não em um único arquivo executável.

Meu programa usa bibliotecas pesadas como OpenCV. Isso vai funcionar?

Sim, o agente pode analisar e otimizar o tamanho das bibliotecas, e pode recomendar alternativas mais leves se disponíveis, para reduzir o tamanho total do instalador.

O instalador vai funcionar em qualquer computador Windows?

O agente garante que o instalador inclua as bibliotecas necessárias (como o Visual C++ Redistributable) para funcionar em sistemas Windows limpos, minimizando problemas de compatibilidade.

Detalhes

Descrição original do autor

Commercial-grade Python installer expert for Windows: Nuitka extreme compilation, dist slimming, DLL footprint analysis, and Inno Setup packaging to ship the smallest, fastest installers. Use when a Python app must ship as a minimal, fast-starting Windows installer; not for basic script-to-exe conversion. 中文触发:Nuitka 极限优化、Python 商业打包、极限编译 Python、dist 瘦身、DLL 分析、最小安装包、最快启动、商业级打包风格

repo: affaan-m/ECC

Popularidade

Estrelas no GitHub
280 mil
Posição no ranking
#196
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas