Introdução
Bem-vindo a este laboratório sobre Ambientes Virtuais Python. O uso de um ambiente virtual serve para testar códigos Python em ambientes encapsulados e evitar sobrecarregar a instalação base do Python com bibliotecas que podem ser usadas apenas para um único projeto. Essa prática é crucial para manter configurações de desenvolvimento limpas, reprodutíveis e livres de conflitos.
Neste laboratório, você terá experiência prática com cinco ferramentas populares para gerenciar ambientes virtuais e dependências em Python:
- virtualenv: A ferramenta fundamental para criar ambientes Python isolados.
- Poetry: Uma ferramenta tudo-em-um para gerenciamento de dependências, empacotamento e publicação.
- Pipenv: Uma ferramenta que visa trazer o melhor de todos os mundos de empacotamento para o Python.
- Anaconda: Uma plataforma popular para ciência de dados que inclui recursos poderosos de gerenciamento de ambientes.
- UV: Um instalador e resolvedor de pacotes Python de última geração, extremamente rápido.
Ao final deste laboratório, você será capaz de escolher e usar a ferramenta certa para as necessidades do seu projeto.
virtualenv
Nesta etapa, você aprenderá a usar o virtualenv para criar e gerenciar ambientes Python isolados. O virtualenv é uma ferramenta para criar ambientes Python isolados, permitindo que você teste códigos Python em ambientes encapsulados e evite preencher a instalação base do Python com bibliotecas que podem ser usadas apenas para um único projeto. A ferramenta já foi pré-instalada para você.
Primeiro, vamos criar um diretório para armazenar seus ambientes virtuais e, em seguida, criar um novo ambiente virtual chamado HelloWorld. Abra um terminal no WebIDE e execute os seguintes comandos:
mkdir -p ~/.virtualenvs
virtualenv ~/.virtualenvs/HelloWorld
Você verá algumas saídas à medida que o ambiente é criado. O ambiente virtual será criado no diretório ~/.virtualenvs/HelloWorld.
created virtual environment CPython3.10.12.final.0-64 in 257ms
creator CPython3Posix(dest=/home/labex/.virtualenvs/HelloWorld, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/labex/.local/share/virtualenv)
added seed packages: pip==24.0, setuptools==69.5.1, wheel==0.43.0
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Agora, vamos ativar o ambiente virtual. Isso alterará o prompt do seu terminal para incluir (HelloWorld), indicando que o ambiente virtual está ativo. Tudo o que você instalar usando o pip agora será específico para este ambiente e não afetará sua instalação global do Python.
source ~/.virtualenvs/HelloWorld/bin/activate
Após a ativação, seu prompt mudará para mostrar (HelloWorld):
(HelloWorld) labex:project/ $
Para sair do ambiente virtual, basta usar o comando deactivate:
deactivate
Observe como o prefixo (HelloWorld) desaparece do prompt do seu terminal.
Para reativar o ambiente mais tarde, você pode usar o comando source novamente de qualquer lugar:
source ~/.virtualenvs/HelloWorld/bin/activate
Seu prompt mudará de volta e você estará no ambiente HelloWorld novamente, pronto para trabalhar em seu projeto.
Poetry
Nesta etapa, você explorará o Poetry, uma ferramenta moderna para gerenciamento de dependências e empacotamento em Python. Ele permite que você declare as bibliotecas das quais seu projeto depende, e ele as gerenciará (instalará/atualizará) para você. O Poetry já está instalado neste ambiente.
Certifique-se de ter desativado seu ambiente virtual.
deactivate
Primeiro, vamos criar um novo projeto usando o Poetry. Este comando configurará uma estrutura de diretórios padrão para o seu projeto.
poetry new my-poetry-project
Este comando cria um novo diretório chamado my-poetry-project com a seguinte estrutura:
my-poetry-project
├── pyproject.toml
├── README.md
├── my_poetry_project
│ └── __init__.py
└── tests
├── __init__.py
└── test_my_poetry_project.py
O arquivo mais importante aqui é o pyproject.toml, que orquestra seu projeto e suas dependências. Vamos visualizar seu conteúdo inicial.
cat my-poetry-project/pyproject.toml
A saída será semelhante a esta:
[tool.poetry]
name = "my-poetry-project"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.10"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
Agora, navegue para o diretório do seu novo projeto:
cd my-poetry-project
Para adicionar uma nova dependência, use o comando poetry add. O Poetry encontrará automaticamente uma versão adequada e a adicionará ao pyproject.toml. Vamos adicionar a biblioteca pendulum.
poetry add pendulum
Para instalar todas as dependências listadas no pyproject.toml (por exemplo, ao clonar um projeto), você executaria:
poetry install
Finalmente, para remover uma dependência, use o comando poetry remove:
poetry remove pendulum
Isso remove o pacote e atualiza o arquivo pyproject.toml adequadamente.
Pipenv
Nesta etapa, você aprenderá a usar o Pipenv, uma ferramenta que visa trazer o melhor de todos os mundos de empacotamento para o Python. Ele cria e gerencia automaticamente um virtualenv para seus projetos, além de adicionar/remover pacotes do seu Pipfile à medida que você instala/desinstala pacotes.
Primeiro, crie um diretório para seu novo projeto e navegue até ele.
cd ~/project
mkdir my_pipenv_project
cd my_pipenv_project
Agora, vamos instalar um pacote. O Pipenv criará automaticamente um novo ambiente virtual e um Pipfile para rastrear suas dependências. Vamos instalar a biblioteca requests.
pipenv install requests
Após a conclusão do comando, você verá dois novos arquivos em seu diretório: Pipfile e Pipfile.lock. O Pipfile é usado para rastrear quais dependências seu projeto precisa. Vamos inspecionar seu conteúdo:
cat Pipfile
A saída mostrará o pacote requests listado em [packages].
[[source]]
url = "https://pypi.org/simple"
verify_ssl = false
name = "pypi"
[packages]
requests = "*"
[dev-packages]
[requires]
python_version = "3.10"
Para ativar o ambiente virtual associado ao seu projeto, execute:
pipenv shell
O prompt do seu terminal mudará, indicando que você agora está dentro do ambiente isolado do projeto.
Para desinstalar um pacote, você pode executar o comando uninstall dentro do shell ativado:
pipenv uninstall requests
Para sair do shell do ambiente virtual, basta digitar exit:
exit
Anaconda
Nesta etapa, você começará a usar o Anaconda. O Anaconda é uma distribuição de Python e R para computação científica que simplifica o gerenciamento e a implantação de pacotes. Seu gerenciador de pacotes, conda, é excelente para criar e gerenciar ambientes. O comando conda está disponível em seu terminal.
Primeiro, vamos criar um novo ambiente chamado my_conda_env. Também especificaremos a versão do Python a ser usada. O sinalizador -y confirma automaticamente quaisquer prompts.
cd ~/project
conda create -n my_conda_env python=3.10 -y
Assim que o ambiente for criado, você precisará ativá-lo para começar a usá-lo.
conda activate my_conda_env
O prompt do seu terminal agora terá o prefixo (my_conda_env), indicando que o ambiente está ativo. Quaisquer pacotes que você instalar agora serão específicos para este ambiente. Vamos instalar o numpy como exemplo.
conda install numpy -y
Quando terminar de trabalhar no ambiente, você pode desativá-lo.
conda deactivate
O prefixo desaparecerá do seu prompt e você retornará ao ambiente base.
UV
Nesta etapa, você descobrirá o UV, um instalador e resolvedor de pacotes Python extremamente rápido da Astral, os criadores do Ruff. Ele foi projetado como um substituto direto para os fluxos de trabalho do pip e pip-tools e pode ser de 10 a 100 vezes mais rápido. O UV já foi pré-instalado para você.
Vamos começar inicializando um novo projeto. O comando uv init criará um arquivo pyproject.toml e um ambiente virtual em um diretório .venv.
cd ~/project
uv init my-uv-project
Agora, entre no diretório do projeto recém-criado.
cd my-uv-project
Para adicionar uma dependência, use o comando uv add. Isso é semelhante ao poetry add ou npm install. Vamos adicionar a biblioteca requests.
uv add requests
O UV detecta e usa automaticamente o ambiente virtual no diretório atual. Você pode executar comandos dentro deste ambiente gerenciado usando uv run. Vamos verificar a versão do Python dentro do ambiente.
uv run python --version
Você deve ver a versão do Python do ambiente virtual, não a global.
Se você preferir ativar o shell manualmente, pode fazê-lo exatamente como faria com um venv padrão:
source .venv/bin/activate
Seu prompt mudará para mostrar (.venv), indicando que o ambiente está ativo. Para sair do shell ativado, use o comando deactivate.
deactivate
O UV simplifica os fluxos de trabalho ao fornecer um binário único e incrivelmente rápido para gerenciamento de pacotes e ambientes.
Resumo
Neste laboratório, você obteve experiência prática com várias ferramentas essenciais para gerenciar ambientes virtuais e dependências Python. Gerenciar adequadamente o ambiente do seu projeto é uma habilidade fundamental para qualquer desenvolvedor Python, garantindo a reprodutibilidade e evitando conflitos.
Você aprendeu a:
- Usar o virtualenv para criar, ativar e gerenciar ambientes básicos e isolados.
- Aproveitar o Poetry para um fluxo de trabalho unificado que lida com a criação de projetos, gerenciamento de dependências e empacotamento por meio do arquivo
pyproject.toml. - Utilizar o Pipenv para gerenciar dependências de aplicativos de forma declarativa com um
Pipfile, simplificando o processo de configuração de um ambiente de desenvolvimento. - Trabalhar com o Anaconda (
conda) para criar e gerenciar ambientes, uma ferramenta especialmente popular na comunidade de ciência de dados por seu tratamento robusto de pacotes complexos. - Descobrir o UV, a nova ferramenta extremamente rápida que unifica a instalação de pacotes, resolução e gerenciamento de ambientes em um único binário.
Cada ferramenta tem seus pontos fortes, e a melhor escolha geralmente depende das necessidades específicas do seu projeto e das suas preferências pessoais de fluxo de trabalho. Agora você está equipado para tomar uma decisão informada e gerenciar seus projetos Python com eficácia.



