Resumo : neste tutorial, você aprenderá sobre ambientes virtuais Python e como usar o venv
mó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 sys
módulo e exibi-lo da seguinte forma:
import sys
print(sys.prefix)
Linguagem de código: Python ( python )
Ele mostrará algo assim:
C:\\Python
Linguagem 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 pip
comando 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 venv
mó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 venv
módulo integrado.
Primeiro, crie uma nova pasta para hospedar o projeto e o ambiente virtual:
mkdir D:\test_env
cd test_env
Linguagem de código: Python ( python )
Segundo, crie um ambiente virtual com o nome project_env
dentro da test_env
pasta:
python -m venv project_env
Linguagem de código: Python ( python )
O comando acima criará uma nova pasta chamada project_env
com todas as ferramentas e bibliotecas necessárias para executar programas Python.
Use o seguinte comando para verificar onde python.exe
está localizado:
where python
Linguagem de código: Python ( python )
Ele retornará o seguinte caminho indicando que python.exe
está localizado na pasta de instalação:
C:\Python\python.exe
Linguagem de código: Python ( python )
Segundo, ative o ambiente virtual executando o arquivo activate.bat no project_env/Scripts
diretório:
project_env\Scripts\activate
Linguagem 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_env
ambiente virtual.
Agora, você pode verificar onde python.exe
está localizado novamente:
where python
Linguagem de código: Python ( python )
Desta vez ele retorna os seguintes caminhos:
D:\test_env\project_env\Scripts\python.exe
C:\Python\python.exe
Linguagem de código: Python ( python )
A primeira linha mostra que python.exe
está localizado na project_env/Scripts
pasta. Isso significa que se você executar o comando python dentro do project_env
, ele D:\test_env\project_env\Scripts\python.exe
será executado em vez do C:\Python\python.exe
.
Terceiro, navegue até D:\test_env
, crie uma nova pasta de projeto chamada
e navegue até a web_crawler
web_crawler
pasta:
cd..
cd..
mkdir web_crawler
cd web_crawler
Linguagem de código: Python ( python )
Quarto, mostre os pacotes instalados no project_env
ambiente virtual do web_crawler
projeto:
pip list
Linguagem de código: Python ( python )
Saída:
Package Version
---------- -------
pip 22.0.4
setuptools 58.1.0
Linguagem de código: Python ( python )
Quando você criou o project_env
ambiente virtual, o venv
módulo já instalou dois pacotes: pip
e setuptools
.
Quinto, instale o pacote de solicitações no ambiente virtual:
pip install requests
Linguagem de código: Python ( python )
Se você exibir todos os pacotes instalados no project_env
ambiente 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.12
Linguagem de código: Python ( python )
Sexto, crie o requirements.txt
arquivo:
pip freeze > requirements.txt
Linguagem de código: Python ( python )
O conteúdo do requirements.txt
ficará assim:
certifi==2022.9.24
charset-normalizer==2.1.1
idna==3.4
requests==2.28.1
urllib3==1.26.12
Linguagem de código: Python ( python )
O requirements.txt
arquivo contém todos os pacotes com versões instaladas no project_env
ambiente virtual utilizado para o projeto.
Ao copiar o projeto para uma máquina diferente, você pode executar o pip install
comando para instalar todos os pacotes listados no requirements.txt
arquivo.
Sétimo, crie o main.py
arquivo que utiliza o requests
mó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.py
arquivo, você pode usar o python
comando normalmente:
python main.py
Linguagem de código: Python ( python )
Este comando executa o python.exe
arquivo
e carrega os pacotes instalados no project_env
ambiente virtual.project_env
Para desativar o ambiente virtual, você pode executar o deactivate
comando:
deactivate
Linguagem 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ê
mais o prefixo (). Isso significa que você não está no project_env
ambiente virtual.project_env
Resumo
- Um ambiente virtual cria um ambiente isolado para um projeto Python.
- Use o
venv
módulo para criar um novo ambiente virtual.