---
title: "pip vs uv vs Poetry vs Conda: Qual Gerenciador Python Usar em 2026"
url: "https://python.dev.br/blog/gerenciadores-de-pacotes-python/"
markdown_url: "https://python.dev.br/blog/gerenciadores-de-pacotes-python.MD"
description: "Compare pip, uv, Poetry e Conda para projetos Python em 2026. Veja quando usar cada ferramenta, comandos, lockfile, ambiente virtual e ciência de dados."
date: "2026-01-28"
author: "Equipe Python Brasil"
---

# pip vs uv vs Poetry vs Conda: Qual Gerenciador Python Usar em 2026

Compare pip, uv, Poetry e Conda para projetos Python em 2026. Veja quando usar cada ferramenta, comandos, lockfile, ambiente virtual e ciência de dados.


O gerenciamento de dependências é uma parte crucial de qualquer projeto Python. Instalar bibliotecas, controlar versões, resolver conflitos e garantir que o ambiente de desenvolvimento seja reproduzível são desafios que todo programador enfrenta. Em 2026, a pergunta deixou de ser apenas "pip, Poetry ou Conda?". O **uv** entrou de vez na conversa e virou a escolha padrão para muitos projetos novos.

Neste artigo, vamos comparar **pip, uv, Poetry e Conda** em detalhes, mostrando os pontos fortes e fracos de cada ferramenta para que você escolha a opção certa para scripts, APIs, projetos profissionais, ciência de dados e automações. Se você está começando do zero, veja também o guia de [ambientes virtuais em Python](/guias/criando-virtual-environment/) e o tutorial completo de [uv como gerenciador de pacotes](/blog/uv-gerenciador-pacotes-python/).

## pip: o gerenciador padrão

O pip vem instalado junto com o Python e é a ferramenta mais básica e universal para instalar pacotes do PyPI (Python Package Index):

```python
# Instalando pacotes
# pip install requests
# pip install pandas==2.1.0          # Versão específica
# pip install "flask>=3.0,<4.0"      # Intervalo de versões

# Atualizando pacotes
# pip install --upgrade requests

# Removendo pacotes
# pip uninstall requests

# Listando pacotes instalados
# pip list
# pip show requests                   # Detalhes de um pacote
```

### requirements.txt

O pip usa o arquivo `requirements.txt` para listar dependências:

```python
# Gerando o requirements.txt
# pip freeze > requirements.txt

# Instalando a partir do requirements.txt
# pip install -r requirements.txt
```

Um `requirements.txt` típico se parece com isto:

```
requests==2.31.0
flask==3.0.0
pandas==2.1.4
sqlalchemy==2.0.23
pytest==7.4.3
```

### Vantagens do pip

- Vem instalado com Python, sem configuração adicional.
- Simplicidade absoluta para instalar pacotes individuais.
- Compatível com praticamente qualquer pacote Python.
- Ampla documentação e suporte da comunidade.

### Desvantagens do pip

- Não resolve conflitos de dependência de forma inteligente.
- O `pip freeze` inclui todas as dependências, misturando diretas e transitivas.
- Não gerencia ambientes virtuais nativamente (precisa de `venv` ou `virtualenv`).
- Não distingue entre dependências de produção e desenvolvimento.

## uv: a opção moderna e rápida para 2026

O **uv** é o gerenciador de pacotes Python criado pela Astral, a mesma empresa por trás do Ruff. Ele é escrito em <a href="https://rustlang.com.br/" target="_blank" rel="noopener" onclick="umami.track('portfolio-site-click', { destination: 'rustlang.com.br' })">Rust</a> e foi desenhado para substituir várias ferramentas do ecossistema: `pip`, `pip-tools`, `virtualenv`, parte do fluxo do Poetry e até o gerenciamento de versões do Python em alguns cenários.

A principal diferença prática é velocidade. Em projetos com muitas dependências, o uv costuma instalar e resolver pacotes muito mais rápido que pip e Poetry. Mas o ganho não é só performance: ele também simplifica o fluxo de projeto com `uv init`, `uv add`, `uv lock`, `uv sync` e `uv run`.

```bash
# Criar um projeto novo
uv init minha-api
cd minha-api

# Adicionar dependências de produção
uv add fastapi sqlalchemy pydantic

# Adicionar dependências de desenvolvimento
uv add --dev pytest ruff mypy

# Rodar comandos no ambiente do projeto
uv run pytest
uv run ruff check .

# Sincronizar exatamente o lockfile
uv sync
```

### Quando escolher uv

Escolha uv quando você quer um fluxo moderno, rápido e com pouco atrito. Ele é especialmente bom para:

- APIs com FastAPI, Django Ninja ou Flask;
- automações internas com dependências pequenas;
- projetos de dados que não precisam de bibliotecas nativas complexas fora do PyPI;
- ambientes de CI/CD que precisam instalar dependências rapidamente;
- times que querem `pyproject.toml` e lockfile sem a lentidão percebida em alguns projetos Poetry.

Para um projeto profissional novo em 2026, minha recomendação prática é começar com **uv + pyproject.toml + uv.lock**. O pip continua importante porque é universal, mas o uv entrega uma experiência melhor para a maioria dos repositórios novos.

### Cuidados ao migrar de pip ou Poetry para uv

A migração costuma ser simples, mas não deve ser feita às cegas. Antes de trocar a ferramenta de um projeto existente:

1. gere um lockfile com `uv lock`;
2. rode a suíte de testes com `uv run pytest`;
3. valide scripts de deploy, Dockerfile e CI;
4. documente os comandos novos no README;
5. remova arquivos antigos apenas quando o build estiver reproduzível.

Se o projeto já usa Poetry sem dor, não há urgência em migrar. Mas se o time sofre com resolução lenta, ambiente quebrado ou CI demorado, uv é uma atualização de alto retorno.

## Poetry: gerenciamento moderno

O Poetry é uma ferramenta moderna que resolve várias limitações do pip. Ele gerencia dependências, ambientes virtuais e empacotamento em uma única ferramenta:

```python
# Instalando o Poetry
# curl -sSL https://install.python-poetry.org | python3 -

# Criando um novo projeto
# poetry new meu-projeto

# Ou inicializando em um projeto existente
# poetry init
```

### pyproject.toml

O Poetry usa o `pyproject.toml` como arquivo de configuração central:

```toml
[tool.poetry]
name = "meu-projeto"
version = "0.1.0"
description = "Descrição do projeto"
authors = ["Seu Nome <email@exemplo.com>"]

[tool.poetry.dependencies]
python = "^3.10"
requests = "^2.31"
flask = "^3.0"
sqlalchemy = "^2.0"

[tool.poetry.group.dev.dependencies]
pytest = "^7.4"
black = "^23.0"
mypy = "^1.0"
```

### Comandos principais

```python
# Adicionando dependências
# poetry add requests                    # Produção
# poetry add --group dev pytest          # Desenvolvimento

# Removendo dependências
# poetry remove requests

# Instalando todas as dependências
# poetry install

# Atualizando dependências
# poetry update
# poetry update requests                 # Pacote específico

# Executando scripts no ambiente do Poetry
# poetry run python meu_script.py
# poetry run pytest

# Abrindo um shell no ambiente virtual
# poetry shell
```

### O poetry.lock

O Poetry gera automaticamente um arquivo `poetry.lock` que registra as versões exatas de todas as dependências, incluindo as transitivas. Isso garante que todos os desenvolvedores e o ambiente de produção usem exatamente as mesmas versões:

```python
# O lock é gerado automaticamente no poetry install/add
# Para regenerar:
# poetry lock
```

### Vantagens do Poetry

- Resolve conflitos de dependência de forma inteligente.
- Separa dependências de produção e desenvolvimento.
- Gera lock file para reprodutibilidade total.
- Gerencia ambientes virtuais automaticamente.
- Empacotamento e publicação no PyPI integrados.
- Um único arquivo de configuração (`pyproject.toml`).

### Desvantagens do Poetry

- Precisa ser instalado separadamente.
- Curva de aprendizado inicial maior que o pip.
- Pode ser mais lento na resolução de dependências em projetos grandes.
- Nem todos os projetos de código aberto o utilizam ainda.

## Conda: foco em ciência de dados

O Conda é um gerenciador de pacotes e ambientes criado para o ecossistema de ciência de dados. Ele instala não apenas pacotes Python, mas também bibliotecas de sistema (como compiladores C e bibliotecas numéricas), o que o torna especialmente útil para pacotes científicos:

```python
# Instalando o Miniconda (versão leve)
# Baixe de: https://docs.conda.io/en/latest/miniconda.html

# Criando um ambiente
# conda create --name meu-ambiente python=3.11

# Ativando o ambiente
# conda activate meu-ambiente

# Instalando pacotes
# conda install numpy pandas scikit-learn
# conda install -c conda-forge tensorflow

# Listando pacotes
# conda list

# Exportando o ambiente
# conda env export > environment.yml
```

### environment.yml

O arquivo de configuração do Conda se parece com isto:

```yaml
name: meu-projeto
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.11
  - numpy=1.26
  - pandas=2.1
  - scikit-learn=1.3
  - matplotlib=3.8
  - pip:
    - flask==3.0.0
    - requests==2.31.0
```

### Vantagens do Conda

- Instala dependências de sistema (bibliotecas C, Fortran, etc.).
- Excelente para ciência de dados e machine learning.
- Resolve dependências entre pacotes Python e não-Python.
- Gerencia ambientes de forma isolada e completa.
- Repositório conda-forge com milhares de pacotes científicos.

### Desvantagens do Conda

- Instalação inicial pesada (Anaconda) ou moderada (Miniconda).
- Mais lento que pip para instalar pacotes puramente Python.
- O repositório padrão pode ter versões defasadas.
- Misturar `conda install` e `pip install` pode causar conflitos.
- Ocupação de disco significativamente maior.

## Comparação direta

Para facilitar a escolha, veja um resumo comparativo das quatro ferramentas em diferentes cenários:

```python
# Cenário 1: Script rápido de automação
# Recomendação: uv run ou pip + venv
uv run --with requests python script.py

# Cenário 2: Projeto web profissional novo
# Recomendação: uv (velocidade + lockfile + pyproject.toml)
uv init minha-api
uv add fastapi sqlalchemy
uv add --dev pytest ruff mypy

# Cenário 3: Projeto já padronizado em Poetry
# Recomendação: manter Poetry se o fluxo estiver estável
poetry install
poetry add flask sqlalchemy
poetry add --group dev pytest ruff

# Cenário 4: Ciência de dados / Machine Learning com dependências nativas
# Recomendação: Conda ou Mamba
conda create -n ml-projeto python=3.11
conda activate ml-projeto
conda install numpy pandas scikit-learn tensorflow
```

## Boas práticas gerais

Independentemente da ferramenta escolhida:

- **Sempre use ambientes virtuais**: nunca instale pacotes no Python global do sistema.
- **Versione os arquivos de dependência**: inclua `requirements.txt`, `pyproject.toml` ou `environment.yml` no controle de versão.
- **Fixe versões em produção**: use versões exatas para garantir reprodutibilidade.
- **Separe dependências de desenvolvimento**: testes, linters e formatadores não devem ir para produção.
- **Atualize regularmente**: verifique atualizações de segurança periodicamente.
- **Documente a ferramenta escolhida**: inclua instruções de setup no README do projeto.

## Conclusão

Não existe uma ferramenta universalmente melhor — a escolha depende do contexto do projeto. Mas existe uma recomendação prática para 2026: **comece com uv para projetos novos**, use pip quando precisar do caminho mais universal, mantenha Poetry quando ele já estiver bem estabelecido no time e escolha Conda quando o projeto depender fortemente de bibliotecas científicas nativas.

Como próximo passo, escolha a ferramenta mais adequada para o seu projeto atual e pratique o fluxo completo: criação do ambiente, instalação de dependências, exportação da configuração e reprodução em outra máquina. Essa experiência prática vai consolidar o conhecimento e ajudar você a tomar decisões melhores no futuro.

## Perguntas frequentes

### uv substitui pip?

Em muitos fluxos, sim. O uv consegue instalar pacotes, criar ambientes virtuais, resolver dependências e executar scripts. Mesmo assim, pip continua sendo o padrão mais universal do ecossistema Python e ainda aparece em muita documentação. Na prática, é bom saber usar os dois.

### uv substitui Poetry?

Para projetos novos, uv já cobre boa parte do que fazia muita gente escolher Poetry: `pyproject.toml`, lockfile, comandos de projeto e ambientes reproduzíveis. Poetry ainda é forte para empacotamento e publicação com fluxo já consolidado em várias equipes. Se você está começando agora, uv tende a ser a escolha mais simples e rápida.

### Conda ainda vale a pena em 2026?

Sim, principalmente para ciência de dados, machine learning, bioinformática e projetos que dependem de bibliotecas nativas difíceis de instalar. Para APIs, automações e bibliotecas puramente Python, Conda costuma ser pesado demais.

### Posso misturar conda e pip?

Pode, mas com cuidado. A regra segura é instalar primeiro o que estiver disponível no Conda, preferencialmente via conda-forge, e usar pip apenas para pacotes que não existem no ecossistema Conda. Misturar os dois sem critério aumenta o risco de conflitos difíceis de reproduzir.

### Qual ferramenta usar para conseguir vaga como dev Python?

Aprenda pip e venv primeiro, porque aparecem em quase todo processo seletivo. Depois aprenda uv, porque ele representa o fluxo moderno de 2026. Se você quer trabalhar com dados, aprenda Conda também. Para times legados ou bibliotecas publicadas no PyPI, Poetry continua aparecendo bastante.


> **Por que o uv é tão rápido?** O uv, assim como o Ruff, é escrito em <a href="https://rustlang.com.br/" target="_blank" rel="noopener" onclick="umami.track('portfolio-site-click', { destination: 'rustlang.com.br' })">Rust</a>. Isso permite resolução de dependências paralela e cache otimizado que torna a instalação de pacotes praticamente instantânea. A tendência de ferramentas Python escritas em Rust está redefinindo o que esperamos em termos de performance no ecossistema.
