Todo projeto de software precisa de configurações que definam seu comportamento, suas dependências, sua forma de distribuição e as ferramentas utilizadas durante o desenvolvimento. Em Python, essas configurações evoluíram ao longo dos anos e, atualmente, são centralizadas principalmente no arquivo pyproject.toml.
Esse arquivo se tornou o padrão moderno para configuração de projetos Python, substituindo ou complementando diversos arquivos utilizados anteriormente, como setup.py, setup.cfg e parte das funcionalidades do requirements.txt. Além disso, ele permite centralizar as configurações de ferramentas como Poetry, uv, Ruff, Black, Pytest, Mypy e muitas outras.
Neste módulo, você aprenderá como estruturar e configurar projetos Python seguindo os padrões atuais da linguagem, tornando-os mais organizados, reproduzíveis e preparados para ambientes profissionais.
Ao concluir este módulo, você será capaz de:
- compreender o papel da configuração em projetos Python;
- entender a importância do arquivo
pyproject.toml; - configurar metadados de um projeto;
- declarar dependências e dependências de desenvolvimento;
- configurar o sistema de build do projeto;
- centralizar configurações de ferramentas em um único arquivo;
- compreender os padrões modernos adotados pelo ecossistema Python;
- preparar projetos para distribuição e publicação.
- pyproject.toml
Neste tópico será apresentado o principal arquivo de configuração utilizado atualmente em projetos Python.
Principais conceitos estudados:
- o que é o pyproject.toml;
- estrutura do arquivo;
- formato TOML;
- metadados do projeto;
- dependências;
- dependências opcionais;
- sistema de build;
- configuração de ferramentas;
- comparação com requirements.txt e setup.py;
- boas práticas de organização.
Ao final deste tópico, o estudante será capaz de criar e configurar corretamente um projeto Python utilizando o padrão moderno adotado pela comunidade.
Habilidades Desenvolvidas
Ao longo deste módulo, serão desenvolvidas competências fundamentais para o desenvolvimento profissional, como:
- organização de projetos Python;
- configuração de ambientes de desenvolvimento;
- gerenciamento de metadados;
- centralização de configurações;
- preparação para empacotamento e distribuição;
- integração com ferramentas modernas do ecossistema Python;
- padronização de projetos.
meu_projeto/
├── pyproject.toml
├── README.md
├── LICENSE
├── src/
│ └── meu_projeto/
├── tests/
└── .gitignore
O pyproject.toml funciona como o centro das configurações do projeto, enquanto os demais arquivos desempenham papéis específicos, como documentação, licenciamento, código-fonte e testes.
A configuração adequada de projetos é uma prática adotada em praticamente todas as áreas do desenvolvimento Python.
Exemplos incluem:
desenvolvimento de APIs REST; aplicações web; automação de processos; ciência de dados; engenharia de dados; inteligência artificial; desenvolvimento de bibliotecas; ferramentas de linha de comando (CLI); integração contínua (CI/CD); projetos open source.
Independentemente da área de atuação, o pyproject.toml tornou-se um elemento essencial para manter projetos organizados e fáceis de compartilhar. Pré-requisitos
Para aproveitar melhor este módulo, recomenda-se que o estudante já tenha estudado:
- sintaxe básica do Python;
- módulos e organização de código;
- gerenciadores de pacotes (pip, Poetry, uv ou Conda);
- gerenciamento de dependências;
- estrutura básica de projetos Python.
Após dominar a configuração de projetos, o estudante estará preparado para estudar tópicos mais avançados, como:
- testes automatizados;
- documentação técnica;
- tipagem estática;
- integração contínua (CI/CD);
- Docker;
- desenvolvimento de APIs;
- frameworks web;
- publicação de bibliotecas no PyPI;
- arquitetura e boas práticas de software.
Esses conhecimentos utilizam diretamente a estrutura configurada por meio do pyproject.toml.
Neste módulo foi apresentado o pyproject.toml, o padrão moderno para configuração de projetos Python. Centralizando informações como metadados, dependências, sistema de build e configurações de ferramentas em um único arquivo, ele simplifica a organização dos projetos, facilita a colaboração entre equipes e prepara aplicações e bibliotecas para distribuição. Dominar esse arquivo é um passo importante para desenvolver projetos Python alinhados às práticas adotadas atualmente pela comunidade e pelo mercado.