python-packaging
Faz seu agente criar pacotes distribuíveis de código Python. É útil para compartilhar bibliotecas ou ferramentas criadas em Python com outras pessoas.
O que ela faz
Esta ferramenta ajuda a organizar e preparar seus códigos Python para serem compartilhados com outras pessoas. Ela cria um 'pacote' que pode ser facilmente instalado e usado em outros projetos ou até mesmo publicado para que qualquer um possa usar.
Quando usar
- ✓Quando você cria um código Python que quer que outros usem.
- ✓Ao desenvolver ferramentas que rodam no terminal.
- ✓Para publicar seu código no PyPI (a loja de pacotes Python).
Exemplo do que pedir para a IA
“Como eu crio um pacote Python para compartilhar meu código?”
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
Mensagem pronta para colar
Como funciona
A ferramenta organiza seu código em uma estrutura padrão, define as informações do projeto em um arquivo chamado `pyproject.toml` e usa ferramentas específicas para criar o pacote pronto para distribuição.
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 wshobson/agents --skill python-packagingOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/python-development/skills/python-packaging/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Empacotamento Python
Guia completo para criar, estruturar e distribuir pacotes Python usando ferramentas de empacotamento modernas, pyproject.toml e publicação no PyPI.
Quando Usar Esta Habilidade
- Criar bibliotecas Python para distribuição
- Construir ferramentas de linha de comando com pontos de entrada (entry points)
- Publicar pacotes no PyPI ou em repositórios privados
- Configurar a estrutura de projetos Python
- Criar pacotes instaláveis com dependências
- Construir distribuições wheel e de código-fonte (source distributions)
- Versionar e lançar pacotes Python
- Criar pacotes de namespace (namespace packages)
- Implementar metadados e classificadores de pacotes
Conceitos Principais
1. Estrutura do Pacote
- Layout de origem (Source layout):
src/package_name/(recomendado) - Layout plano (Flat layout):
package_name/(mais simples, mas menos flexível) - Metadados do pacote:
pyproject.toml,setup.pyousetup.cfg - Formatos de distribuição: wheel (
.whl) e distribuição de código-fonte (.tar.gz)
2. Padrões Modernos de Empacotamento
- PEP 517/518: Requisitos do sistema de build
- PEP 621: Metadados em
pyproject.toml - PEP 660: Instalações editáveis (editable installs)
- pyproject.toml: Única fonte de configuração
3. Backends de Build
- setuptools: Tradicional, amplamente utilizado
- hatchling: Moderno, opinativo
- flit: Leve, para Python puro
- poetry: Gerenciamento de dependências + empacotamento
4. Distribuição
- PyPI: Python Package Index (público)
- TestPyPI: Teste antes da produção
- Repositórios privados: JFrog, AWS CodeArtifact, etc.
Início Rápido
Estrutura Mínima de Pacote
my-package/
├── pyproject.toml
├── README.md
├── LICENSE
├── src/
│ └── my_package/
│ ├── __init__.py
│ └── module.py
└── tests/
└── test_module.py
pyproject.toml Mínimo
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "my-package"
version = "0.1.0"
description = "A short description"
authors = [{name = "Your Name", email = "you@example.com"}]
readme = "README.md"
requires-python = ">=3.8"
dependencies = [
"requests>=2.28.0",
]
[project.optional-dependencies]
dev = [
"pytest>=7.0",
"black>=22.0",
]
Padrões de Estrutura de Pacote
Padrão 1: Layout de Origem (Recomendado)
my-package/
├── pyproject.toml
├── README.md
├── LICENSE
├── .gitignore
├── src/
│ └── my_package/
│ ├── __init__.py
│ ├── core.py
│ ├── utils.py
│ └── py.typed # For type hints
├── tests/
│ ├── __init__.py
│ ├── test_core.py
│ └── test_utils.py
└── docs/
└── index.md
Vantagens:
- Impede a importação acidental a partir do código-fonte
- Importações de teste mais limpas
- Melhor isolamento
pyproject.toml para layout de origem:
[tool.setuptools.packages.find]
where = ["src"]
Padrão 2: Layout Plano
my-package/
├── pyproject.toml
├── README.md
├── my_package/
│ ├── __init__.py
│ └── module.py
└── tests/
└── test_module.py
Mais simples, mas:
- Permite importar o pacote sem instalá-lo
- Menos profissional para bibliotecas
Padrão 3: Projeto com Múltiplos Pacotes
project/
├── pyproject.toml
├── packages/
│ ├── package-a/
│ │ └── src/
│ │ └── package_a/
│ └── package-b/
│ └── src/
│ └── package_b/
└── tests/
Padrões Detalhados e Exemplos Práticos
A documentação detalhada dos padrões está em references/details.md. Leia este arquivo quando a navegação acima for insuficiente.
Perguntas frequentes
O que é PyPI?
PyPI significa Python Package Index. É um grande repositório onde desenvolvedores publicam e encontram pacotes Python.
Qual a diferença entre `src/` e layout 'flat'?
O layout `src/` é recomendado porque separa o código principal dos outros arquivos do projeto, evitando confusão. O layout 'flat' é mais simples, mas pode ser menos organizado para projetos maiores.
O que é `pyproject.toml`?
É um arquivo de configuração moderno que centraliza as informações do seu projeto Python, como nome, versão, dependências e como o pacote deve ser construído.
Detalhes
Descrição original do autor
Create distributable Python packages with proper project structure, setup.py/pyproject.toml, and publishing to PyPI. Use when packaging Python libraries, creating CLI tools, or distributing Python code.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4930
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC