pip e Ambientes Virtuais

A biblioteca padrão cobre muitos cenários, mas projetos reais quase sempre usam bibliotecas de terceiros — requests para HTTP, pandas para dados, flask para aplicativos web. Esta lição ensina como instalar e gerenciar estas bibliotecas, e como usar ambientes virtuais para isolar dependências entre projetos.


1. pip — Gerenciador de Pacotes do Python

pip é o gerenciador de pacotes oficial do Python, para instalar, desinstalar e gerenciar bibliotecas de terceiros.

BASH
# Instalar um pacote
pip install requests

# Instalar uma versão específica
pip install requests==2.31.0

# Desinstalar um pacote
pip uninstall requests

# Listar pacotes instalados
pip list

# Ver informações do pacote
pip show requests
💡 pip baixa pacotes do PyPI (Python Package Index). PyPI é o repositório oficial de pacotes do Python, hospedando mais de 500.000 pacotes. pip install nome_pacote automaticamente baixa e instala do PyPI.


2. requirements.txt

Quando seu projeto depende de múltiplas bibliotecas de terceiros, use requirements.txt para registrá-las:

TXT
requests==2.31.0
flask==3.0.0
pandas==2.0.0
numpy==1.24.0
BASH
# Instalar todas as dependências (execute após clonar um projeto)
pip install -r requirements.txt

# Gerar requirements.txt (todos os pacotes no ambiente atual)
pip freeze > requirements.txt

Exemplo: Chamando uma API com requests (Dificuldade ⭐⭐)

PYTHON
# Instale primeiro: pip install requests
import requests

# Chama uma API pública de clima
try:
    response = requests.get(
        "https://api.open-meteo.com/v1/forecast",
        params={
            "latitude": -23.5505,
            "longitude": -46.6333,
            "current_weather": True
        },
        timeout=10
    )
    
    if response.status_code == 200:
        data = response.json()
        weather = data["current_weather"]
        print(f"Temperatura atual em São Paulo: {weather['temperature']}°C")
        print(f"Velocidade do vento: {weather['windspeed']} km/h")
    else:
        print(f"Requisição falhou: {response.status_code}")

except requests.exceptions.RequestException as e:
    print(f"Erro de rede: {e}")
▶ Experimente

3. Ambientes Virtuais (venv)

Diferentes projetos podem precisar de versões diferentes do mesmo pacote. Ambientes virtuais resolvem isso — cada projeto tem seu próprio ambiente isolado.

BASH
# Criar um ambiente virtual
python -m venv myenv

# Ativar o ambiente virtual
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate

# Após ativação, o prompt mostra (myenv) no início
# Pacotes instalados agora afetam apenas este ambiente

# Desativar o ambiente virtual
deactivate

Fluxo de Trabalho

BASH
# 1. Criar diretório do projeto
mkdir meu_projeto
cd meu_projeto

# 2. Criar ambiente virtual
python -m venv venv

# 3. Ativar
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# 4. Instalar dependências
pip install requests flask

# 5. Registrar dependências
pip freeze > requirements.txt

# 6. Desativar quando terminar
deactivate

# Outra pessoa clonando o projeto:
# python -m venv venv
# source venv/bin/activate (ou equivalente Windows)
# pip install -r requirements.txt

4. Referência Rápida de Bibliotecas de Terceiros Comuns

Biblioteca Propósito Comando de Instalação Descrição
requests Requisições HTTP pip install requests Forma mais popular de fazer requisições HTTP
flask Framework web pip install flask Framework web Python leve
pandas Análise de dados pip install pandas Processamento de dados nível Excel
numpy Computação numérica pip install numpy Operações de array de alto desempenho
beautifulsoup4 Web scraping pip install beautifulsoup4 Extrair dados de HTML
pillow Processamento de imagem pip install pillow Abrir, editar e salvar imagens
pytest Framework de teste pip install pytest Framework de teste Python mais popular

Exemplo: Lendo CSV com pandas (Dificuldade ⭐⭐)

PYTHON
# Instale primeiro: pip install pandas
import pandas as pd

# Ler arquivo CSV
df = pd.read_csv("alunos.csv")
print(df.head())                    # Primeiras 5 linhas
print(f"Linhas: {len(df)}, Colunas: {len(df.columns)}")
print(df.describe())                # Resumo estatístico
▶ Experimente

Casos de Uso Comuns


❓ Perguntas Frequentes

P: Qual a diferença entre pip install e python -m pip install? R: Produzem o mesmo resultado. python -m pip especifica explicitamente qual interpretador Python usar, o que é mais seguro em ambientes com múltiplas versões Python. Crie o hábito de usar python -m pip install. P: O ambiente virtual deve ficar dentro ou fora do diretório do projeto? R: Tipicamente dentro da raiz do projeto, nomeado venv ou .venv. Isso torna óbvio para outros desenvolvedores. Lembre-se de adicionar venv/ ao .gitignore — ambientes virtuais não devem ser commitados no controle de versão. P: pip freeze > requirements.txt lista todos os pacotes, incluindo dependências de dependências. Não é demais? R: pip freeze lista tudo. É comum manter apenas os pacotes de nível superior e remover dependências indiretas. Alternativamente, use pipreqs, que apenas escaneia pacotes que são realmente importados em seu código.


📖 Resumo


📝 Atividades

  1. Básico (Dificuldade ⭐): Crie um ambiente virtual, ative-o, instale a biblioteca requests, confirme com pip list, depois desative.

  2. Intermediário (Dificuldade ⭐⭐): Use a biblioteca requests para chamar https://api.github.com/repos/python/cpython e obtenha informações sobre o repositório CPython. Exiba o nome do repositório, número de estrelas, forks e data da última atualização.

  3. Desafio (Dificuldade ⭐⭐⭐): Crie um diretório de projeto, inicialize um ambiente virtual, instale flask e requests, gere um requirements.txt com pip freeze. Depois delete o ambiente virtual e reconstrua do zero usando requirements.txt — verifique se funciona.

100%