Ambientes Virtuais Python

Resumo : neste tutorial, você aprenderá sobre ambientes virtuais Python e como usar o venvmódulo para criar um ambiente virtual.

Por que você precisa de ambientes virtuais Python

Python armazena todos os pacotes do sistema em uma pasta especificada ao instalar o Python . Normalmente, a maioria dos pacotes do sistema está localizada em subpastas de um caminho especificado no arquivo sys.prefix. Para encontrar esse caminho, você pode importar o sysmódulo e exibi-lo da seguinte forma:

import sys

print(sys.prefix)Linguagem de código:  Python  ( python )

Ele mostrará algo assim:

C:\\PythonLinguagem de código:  Python  ( python )

Quando você usa pip para instalar pacotes de terceiros, o Python armazena esses pacotes em uma pasta diferente especificada pela site.getsitepackges()função:

import site
print(site.getsitepackages())Linguagem de código:  Python  ( python )

Ele retorna algo assim:

['C:\\Python', 
'C:\\Python\\lib\\site-packages']Linguagem de código:  Python  ( python )

Você ficará bem se tiver alguns projetos que usam apenas bibliotecas Python padrão. No entanto, será um problema quando você tiver alguns projetos que usam pacotes de terceiros.

Suponha que você tenha dois projetos que usam versões diferentes de uma biblioteca. Como existe apenas um local para armazenar pacotes de terceiros, você não pode manter versões diferentes ao mesmo tempo.

Uma solução alternativa é que você pode usar o pipcomando para alternar entre versões instalando/desinstalando os pacotes. No entanto, será demorado e não será muito bem dimensionado.

É aqui que os ambientes virtuais entram em jogo.

O que é um ambiente virtual Python

Python usa ambientes virtuais para criar um ambiente isolado para cada projeto. Em outras palavras, cada projeto terá seu próprio diretório para armazenar pacotes de terceiros.

Caso você tenha vários projetos que utilizam versões diferentes de um pacote, você pode armazená-los em ambientes virtuais separados.

Python inclui o módulo de ambiente virtual ( venv) como biblioteca padrão desde a versão 3.3. Portanto, para usar o venvmódulo, você deve ter Python 3.3 ou posterior.

Para verificar a versão do Python, você pode usar o seguinte comando:

python --version

Usando o módulo venv para criar um ambiente virtual

O exemplo a seguir mostra como criar um novo projeto no Windows, que usa um ambiente virtual criado pelo venvmódulo integrado.

Primeiro, crie uma nova pasta para hospedar o projeto e o ambiente virtual:

mkdir D:\test_env
cd test_envLinguagem de código:  Python  ( python )

Segundo, crie um ambiente virtual com o nome project_envdentro da test_envpasta:

python -m venv project_envLinguagem de código:  Python  ( python )

O comando acima criará uma nova pasta chamada project_envcom todas as ferramentas e bibliotecas necessárias para executar programas Python.

Use o seguinte comando para verificar onde python.exeestá localizado:

where pythonLinguagem de código:  Python  ( python )

Ele retornará o seguinte caminho indicando que python.exeestá localizado na pasta de instalação:

C:\Python\python.exeLinguagem de código:  Python  ( python )

Segundo, ative o ambiente virtual executando o arquivo activate.bat no project_env/Scriptsdiretório:

project_env\Scripts\activateLinguagem de código:  Python  ( python )

Depois de executado, você verá o seguinte no terminal:

(project_env) D:\test_env\project_env\Scripts>Linguagem de código:  Python  ( python )

O prefixo ( project_env) indica que você está no project_envambiente virtual.

Agora, você pode verificar onde python.exeestá localizado novamente:

where pythonLinguagem de código:  Python  ( python )

Desta vez ele retorna os seguintes caminhos:

D:\test_env\project_env\Scripts\python.exe
C:\Python\python.exeLinguagem de código:  Python  ( python )

A primeira linha mostra que python.exeestá localizado na project_env/Scriptspasta. Isso significa que se você executar o comando python dentro do project_env, ele D:\test_env\project_env\Scripts\python.exeserá executado em vez do C:\Python\python.exe.

Terceiro, navegue até D:\test_env, crie uma nova pasta de projeto chamada web_crawlere navegue até a web_crawlerpasta:

cd..
cd..
mkdir web_crawler
cd web_crawlerLinguagem de código:  Python  ( python )

Quarto, mostre os pacotes instalados no project_envambiente virtual do web_crawlerprojeto:

pip listLinguagem de código:  Python  ( python )

Saída:

Package    Version
---------- -------
pip        22.0.4
setuptools 58.1.0Linguagem de código:  Python  ( python )

Quando você criou o project_envambiente virtual, o venvmódulo já instalou dois pacotes: pipe setuptools.

Quinto, instale o pacote de solicitações no ambiente virtual:

pip install requestsLinguagem de código:  Python  ( python )

Se você exibir todos os pacotes instalados no project_envambiente virtual, verá o pacote requests e suas dependências:

Package            Version
------------------ ---------
certifi            2022.9.24
charset-normalizer 2.1.1
idna               3.4
pip                22.0.4
requests           2.28.1
setuptools         58.1.0
urllib3            1.26.12Linguagem de código:  Python  ( python )

Sexto, crie o requirements.txtarquivo:

pip freeze > requirements.txtLinguagem de código:  Python  ( python )

O conteúdo do requirements.txtficará assim:

certifi==2022.9.24
charset-normalizer==2.1.1
idna==3.4
requests==2.28.1
urllib3==1.26.12Linguagem de código:  Python  ( python )

O requirements.txtarquivo contém todos os pacotes com versões instaladas no project_envambiente virtual utilizado para o projeto.

Ao copiar o projeto para uma máquina diferente, você pode executar o pip installcomando para instalar todos os pacotes listados no requirements.txtarquivo.

Sétimo, crie o main.pyarquivo que utiliza o requestsmódulo:

import requests

response = requests.get('https://www.google.com')
if response.status_code == 200:
    print(response.text)Linguagem de código:  Python  ( python )

Para executar o main.pyarquivo, você pode usar o pythoncomando normalmente:

python main.pyLinguagem de código:  Python  ( python )

Este comando executa o python.exearquivo project_enve carrega os pacotes instalados no project_envambiente virtual.

Para desativar o ambiente virtual, você pode executar o deactivatecomando:

deactivateLinguagem de código:  Python  ( python )

Ele retornará o seguinte:

D:\test_env\web_crawler>Linguagem de código:  Python  ( python )

Agora, você não vê project_envmais o prefixo (). Isso significa que você não está no project_envambiente virtual.

Resumo

  • Um ambiente virtual cria um ambiente isolado para um projeto Python.
  • Use o venvmódulo para criar um novo ambiente virtual.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *