Pular para o conteúdo
Skillpedia
Código em geral41 mil · #4930

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

https://github.com/wshobson/agents/blob/main/plugins/python-development/skills/python-packaging/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/python-development/skills/python-packaging/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-packaging

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/python-development/skills/python-packaging/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.

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.py ou setup.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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas