Dominando os ambientes virtuais do Python: um guia completo sobre venv, Docker e como proteger seu código
10 de janeiro de 2024
0 minutos de leituraO Python é uma linguagem de programação versátil e amplamente usada, com um vasto ecossistema de módulos e pacotes. Ao explorar esse ecossistema, é importante entender o papel dos ambientes virtuais. Neste artigo, vamos explicar o que são ambientes virtuais, por que os desenvolvedores precisam deles e algumas ferramentas comuns para criar ambientes virtuais do Python.
O que são ambientes virtuais?
Um ambiente virtual é uma estrutura de diretórios independente que contém uma instalação do Python em uma versão específica, além de vários pacotes adicionais. Os ambientes virtuais ajudam a separar as dependências usadas por diferentes projetos, criando espaços isolados para eles. Assim, cada projeto pode ter suas próprias dependências, independentemente das dependências dos outros projetos.
Veja um exemplo de como criar um ambiente virtual usando o módulo venv, incluído no Python:
No comando acima, /path/to/new/virtual/environment pode ser substituído pelo destino que você preferir. Esse comando cria um diretório, caso ele ainda não exista, e configura um novo ambiente virtual no local especificado.
Por que os desenvolvedores precisam de ambientes virtuais
Ao trabalhar em vários projetos Python, cada um pode exigir versões diferentes do Python e de seus pacotes. Instalar tudo globalmente pode causar conflitos de versão e outros problemas. É aí que entram os ambientes virtuais.
Os ambientes virtuais permitem que os desenvolvedores trabalhem em vários projetos Python sem se preocupar com dependências entre eles. Eles oferecem um espaço isolado para instalar o Python e outros pacotes, garantindo que cada projeto tenha seu próprio conjunto de dependências, sem interferir nos demais.
Além disso, os ambientes virtuais ajudam a garantir que seus projetos possam ser reproduzidos. Isso é muito importante ao trabalhar em equipe e compartilhar seu código com outras pessoas.
Diferentes ferramentas para criar ambientes virtuais do Python
Há várias ferramentas disponíveis para criar ambientes virtuais do Python. Veja alguns exemplos:
venv: é uma biblioteca padrão do Python 3.3 ou posterior. Ela cria e gerencia ambientes virtuais.
No comando acima, /path/to/new/virtual/environment pode ser substituído pelo destino que você preferir. Esse comando cria um diretório, caso ele ainda não exista, e configura um novo ambiente virtual no local especificado.
virtualenv: é uma ferramenta bastante popular que cria ambientes Python isolados. É mais antiga que venv e oferece mais recursos.
pipenv: é uma ferramenta que busca reunir o melhor dos ecossistemas de empacotamento no Python. Ela combina Pipfile, pip e virtualenv em um único comando.
Em resumo, os ambientes virtuais são essenciais para o desenvolvimento em Python. Seja você uma pessoa desenvolvedora experiente em Python ou esteja começando agora, entender e usar ambientes virtuais vai aprimorar bastante seu processo de desenvolvimento.
Como usar o venv para criar ambientes virtuais do Python
Agora, vamos explorar como usar o venv, um módulo integrado ao Python, para criar ambientes virtuais. O uso de ambientes virtuais no Python é uma boa prática para isolar dependências específicas de cada projeto e manter um ecossistema de desenvolvimento organizado. Por isso, o venv é uma ferramenta essencial para desenvolvedores e especialistas em DevOps que trabalham com aplicações Python.
Como criar um ambiente virtual usando o venv
Criar um ambiente virtual usando o venv é simples. No terminal, acesse o diretório do seu projeto e execute o comando a seguir:
Esse comando criará um novo diretório chamado myenv no diretório atual. Ele conterá o ambiente virtual, incluindo o interpretador Python, a biblioteca padrão e vários arquivos de suporte.
Como ativar e usar o ambiente virtual
Depois de criar o ambiente virtual, você precisará ativá-lo. A ativação ajusta seu PATH para que o comando python use a versão do ambiente virtual, e não o interpretador Python global.
Você pode ativar o ambiente virtual com o seguinte comando:
Quando o ambiente for ativado, o prompt do terminal mudará para indicar qual ambiente está ativo. O terminal deverá ficar parecido com isto:
Agora você pode instalar pacotes nesse ambiente sem afetar a configuração global do Python.
Como instalar o Python 3 no ambiente virtual
Como o módulo venv acompanha o Python 3.3 e versões posteriores, o Python 3 é instalado automaticamente no ambiente virtual quando você o cria. No entanto, é possível especificar outra versão do Python ao criar o ambiente. Por exemplo, para criar um ambiente com o Python 3.7, use o seguinte comando:
Como verificar a instalação
Para confirmar que o Python 3 está instalado no ambiente virtual, você pode executar o seguinte comando:
Esse comando deve retornar a versão do Python instalada no seu ambiente.
Lembre-se: usar o venv para criar e gerenciar ambientes virtuais é uma habilidade essencial no desenvolvimento em Python. Essa é uma forma eficaz de gerenciar as dependências dos projetos e garantir sua consistência e confiabilidade.
Bônus: como configurar um ambiente local de desenvolvimento Python em um contêiner Docker
Usar contêineres Docker é uma boa maneira de criar artefatos reproduzíveis e evitar problemas de versão com o sistema operacional nativo. Veja como configurar um ambiente local de desenvolvimento Python usando Docker. Vamos explicar o que é Docker, por que ele é útil no desenvolvimento Python, como criar um Dockerfile, como compilar e executar uma aplicação Python em um contêiner Docker e, por fim, como proteger suas aplicações Python no Docker com o Snyk.
O que é Docker?
Docker é uma plataforma de código aberto que automatiza a implantação, o dimensionamento e o gerenciamento de aplicações. Ela encapsula o software em unidades padronizadas chamadas contêineres, que incluem tudo de que ele precisa para funcionar — como bibliotecas, ferramentas do sistema, código e ambiente de execução. Com o Docker, você garante ambientes consistentes do desenvolvimento à produção.
Por que usar Docker no desenvolvimento Python?
O Docker oferece várias vantagens para o desenvolvimento Python:
Consistência: os contêineres Docker garantem que sua aplicação seja executada exatamente da mesma forma, independentemente de onde for implantada.
Isolamento: o Docker isola as dependências de diferentes projetos. Isso facilita o gerenciamento dessas dependências e evita conflitos entre projetos.
Reprodutibilidade: os contêineres Docker são reproduzíveis, ou seja, você pode compartilhar facilmente o mesmo ambiente com outras pessoas.
Como criar um Dockerfile para uma aplicação Python
Um Dockerfile é um script que reúne comandos e instruções para criar uma imagem Docker. Veja um exemplo básico de Dockerfile para uma aplicação Python:
Neste Dockerfile, começamos com uma imagem do Python 3.8. Em seguida, copiamos o arquivo requirements.txt para a imagem Docker e instalamos as dependências do Python. Depois, copiamos o restante do código para a imagem Docker e especificamos o comando para executar a aplicação.
Como compilar e executar uma aplicação Python em um contêiner Docker
Depois de criar um Dockerfile, você pode compilar sua imagem Docker usando o comando docker build:
Esse comando compila uma imagem Docker a partir do seu Dockerfile e a identifica com o nome your-python-app.
Para executar a aplicação em um contêiner Docker, você pode usar o comando docker run:
Esse comando executa sua aplicação em um contêiner Docker e mapeia a porta 8000 do contêiner para a porta 8000 da sua máquina.
Como proteger suas aplicações Python no Docker com o Snyk
O Snyk ajuda a encontrar e corrigir vulnerabilidades de segurança nas suas imagens Docker. Ele se integra ao seu pipeline de CI/CD para garantir que suas imagens Docker estejam seguras antes da implantação.
Para usar o Snyk, primeiro você precisa instalá-lo:
Em seguida, você pode verificar se sua imagem Docker tem vulnerabilidades:
Esse comando verifica se há vulnerabilidades na sua imagem Docker e no Dockerfile. Se encontrar alguma, o Snyk apresenta informações detalhadas e recomendações para corrigi-la.
Recomendo muito nosso artigo detalhado sobre boas práticas para conteinerizar aplicações Python com Docker, o uso do Snyk Advisor para encontrar pacotes Python no PyPI confiáveis, seguros e bem mantidos e o uso do Snyk para proteger suas aplicações Python.
E agora?
Para concluir, quero compartilhar diversos recursos para você se aprofundar e explorar o Python e a configuração de ambientes virtuais.
Documentação do Pyenv
O Pyenv é uma ferramenta simples, poderosa e multiplataforma para gerenciar várias versões do Python. A documentação do Pyenv apresenta como instalar, usar e gerenciar versões do Python com o Pyenv.
Link: Documentação do Pyenv
Documentação do Venv
O Venv é uma ferramenta incluída no Python 3.3 e versões posteriores para criar ambientes Python isolados. A documentação do Venv explica como criar, usar e gerenciar ambientes virtuais do Python.
Link: Documentação do Venv
Documentação do Docker
O Docker é uma plataforma que permite aos desenvolvedores criar, compartilhar e executar aplicações em contêineres. A documentação do Docker explica como instalar, usar e gerenciar contêineres Docker.
Link: Documentação do Docker
Outros recursos úteis
Abaixo, você encontra links para outros recursos úteis, com guias mais detalhados e práticos sobre como instalar o Python e gerenciar ambientes virtuais.
Seja você desenvolvedor ou profissional de DevOps, estes recursos vão ajudar na sua jornada de desenvolvimento de software.
Encontre e corrija vulnerabilidades em Python
Proteja seus aplicativos com a análise de vulnerabilidades da Snyk e recomendações de correção.
Não é necessário informar cartão de crédito.
Ou cadastre-se com Azure AD Docker ID Bitbucket
Ao usar a Snyk, você concorda em cumprir nossas políticas, incluindo os Termos de Serviço e a Política de Privacidade.


