Pesquisa de site

Não cometa esse erro ao iniciar seu projeto Python


Principais conclusões

  • Os ambientes virtuais criam espaços isolados para projetos Python para evitar conflitos e erros de pacotes.
  • Eles criam uma pasta separada com sua própria cópia do Python e gerenciam o PATH do seu sistema para alternar entre ambientes.
  • Eles ajudam a manter seu ambiente Python global limpo, evitando a poluição com pacotes desnecessários que podem não ser necessários para todos os projetos.

Iniciando um projeto Python? Como desenvolvedor, você frequentemente trabalhará em vários projetos. Se esse for o seu caso, então os ambientes virtuais são seus amigos. Eles o ajudarão a superar conflitos de pacotes e problemas de dependência ao trabalhar em vários projetos Python.

O que é um ambiente virtual?

Um ambiente virtual no contexto da programação Python significa um local independente que permite manter ambientes separados e isolados para seus projetos Python. Quando ativado, ele ajusta o ambiente do seu terminal para usar aquela configuração isolada do Python. Os ambientes virtuais permitem usar várias versões do Python e de outros pacotes sem que uma entre em conflito com a outra. Este processo é consistente em sistemas operacionais como Windows, Linux e macOS.

Para utilizar um ambiente virtual, primeiro você deve criá-lo, ativá-lo, instalar nele os pacotes necessários para o seu projeto e, quando terminar de trabalhar no projeto, finalmente desativar o ambiente. (Abordarei todas as etapas em breve.)

Quando você cria um ambiente virtual pela primeira vez, ele cria uma nova pasta no diretório do seu projeto. O ambiente virtual fica dentro desta pasta. Uma cópia do interpretador Python e alguns arquivos essenciais são colocados nesta pasta. Esta cópia atua como a instalação principal do Python para o seu projeto. Ele também armazena uma pasta Scripts (Windows) ou bin (Linux), que contém os scripts de ativação e desativação, para que você possa alternar entre seu Python global e versões isoladas.

Após ativar o ambiente, o ambiente do seu shell muda, fazendo com que a linha de comando utilize o interpretador Python e bibliotecas dentro do ambiente virtual. Nos bastidores, a variável PATH do ambiente é atualizada. A pasta "bin" ("Scripts" no Windows) do ambiente virtual é adicionada ao início do PATH, o que diz ao seu terminal para olhar lá primeiro. Além disso, seu prompt muda para refletir a atualização.

Ao instalar um pacote Python dentro de um ambiente virtual, ele normalmente é instalado dentro da pasta "lib/pythonX.X/site-packages" ("Lib\site-packages" no Windows) em vez do sistema Python global. Cada ambiente possui seu próprio diretório "site-packages", onde são mantidas todas as bibliotecas e dependências instaladas. Isto mantém cada projeto isolado e livre de conflitos com outros projetos ou pacotes globais.

Por que usar um ambiente virtual para desenvolvimento em Python?

Suponha que você esteja trabalhando em vários projetos Python ao mesmo tempo. Um dos projetos é um pouco antigo. Ambos os projetos requerem o módulo Django. No entanto, o projeto antigo requer o Django versão 3, enquanto o mais recente requer o Django versão 4. À primeira vista, você pode considerar instalar ambas as versões em seu sistema.

No entanto, isso não é possível e você receberá um erro se tentar fazer isso. Portanto, você não pode instalar duas versões diferentes do mesmo pacote ao mesmo tempo. Mesmo que você consiga instalá-lo, a última versão instalada substituirá a instalada anteriormente. Além disso, ao importar um pacote para o seu código Python, você não pode definir qual versão usar. Então, esse é outro motivo pelo qual você só pode ter uma versão de um pacote por vez.

Agora, se você quiser trabalhar em ambos os projetos, você terá que primeiro instalar uma versão do Django, trabalhar nesse projeto, depois desinstalá-lo, instalar a outra versão, mudar para o outro projeto e assim por diante. Isso não é nada prático. Este é apenas um pequeno exemplo. Você provavelmente enfrentará conflitos de dependência muito mais complexos como este.

Ambientes virtuais resolvem esse problema. Você pode criar um novo ambiente para cada um de seus projetos, instalar os pacotes e dependências necessários e não se preocupar com conflitos e erros. Aqui está um exemplo rápido onde instalei duas versões diferentes do NumPy para dois projetos diferentes.

Para este exemplo, configurei dois ambientes virtuais para dois projetos separados. Então instalei com sucesso duas versões separadas do NumPy. Aqui, o projetoA está usando a versão 2.1.1 enquanto o projetoB está usando a versão 2.0.0.

Outra vantagem de utilizar ambientes virtuais é quando você deseja colaborar com outras pessoas ou compartilhar seus projetos. Ao usar um arquivo 'requirements.txt', você pode definir todas as dependências, que podem então ser recriadas em um novo ambiente em outra máquina.

Como criar um ambiente virtual

O ambiente virtual é um diretório que você cria onde armazena todos os arquivos do projeto e pacotes relacionados. Para demonstração, primeiro criarei um diretório para configurar o ambiente.

mkdir programming
cd programming

Dentro deste diretório recém-criado, vou criar um ambiente virtual.

Linux

Na maioria das distribuições Linux, o Python geralmente vem pré-instalado. Caso contrário, você pode instalar o Python no Linux usando seu gerenciador de pacotes. Em seguida, instale o ambiente virtual com este comando:

sudo apt install python3-venv

Depois disso, você pode criar ambientes virtuais. Você precisa nomear o ambiente. Em seguida, execute o comando abaixo:

python3 -m venv my_virt_env

No meu caso, chamei-o de 'my_virt_env'. Você pode escolher qualquer nome adequado.

Windows

A primeira coisa que você precisa fazer é instalar o Python no Windows. Durante a instalação, certifique-se de adicionar Python.exe ao PATH do sistema. Navegue até a pasta onde deseja criar o ambiente virtual. Abra sua ferramenta de linha de comando preferida e execute:

python -m venv myenv

Ativando o Ambiente Virtual

Criar um ambiente virtual não é suficiente. Você precisará ativá-lo usando o arquivo de ativação dentro da pasta para começar a usá-lo. Se você ativar o ambiente virtual com êxito, notará o nome da pasta entre parênteses na linha de comando no início do prompt.

Linux

Para ativar o ambiente virtual no Linux, execute:

source my_virt_env/bin/activate

Lembre-se de usar o mesmo nome de diretório usado para o ambiente virtual.

Agora que você ativou o ambiente virtual, você pode instalar pacotes Python dentro dele, assim:

python -m pip install package_name

Depois de instalar alguns pacotes, você pode verificar suas versões com este comando:

pip list

Se você quiser sair do ambiente virtual, execute:

deactivate

O nome do ambiente entre parênteses deve desaparecer do prompt da linha de comando.

Windows

Para ativar o ambiente no Windows, execute:

myenv\Scripts\activate # CMD
.\myenv\Scripts\Activate.ps1 # PowerShell



Para instalar um pacote dentro deste ambiente, use este comando:

python -m pip install package_name

Você pode listar os pacotes instalados executando:

pip list

Se você quiser sair do ambiente virtual, execute:

deactivate

Ao desativar o ambiente virtual, você retornará à configuração global do Python.

As dores de cabeça do pacote Python desapareceram

Com um ambiente virtual definido, você está pronto para começar a codificar em Python sem se preocupar com diferentes versões de pacotes, conflitos e erros. Para este guia, usei a ferramenta venv. Existem outras ferramentas como Virtualenv e Conda. Você pode ficar à vontade para explorá-los. Se você é novo em Python, comece com o básico e crie seu primeiro projeto.

Artigos relacionados: