Blog


Como usar e criar Virtualenv no Windows 10


Virtualenv no windows 10

Neste artigo vou explicar a necessidade de utilizar ambientes virtuais, como usar e criar, com Virtualenv no Windows 10.
Existem outras boas ferramentas para criar ambientes virtuais, mas sem dúvida Virtualenv é um dos mais queridos e usados.


Ambientes virtuais, porquê?


Vamos imaginar que temos instalado no sistema operativo a versão do Python 3.7.9, e vamos começar a desenvolver um sistema com Kivy, instalamos a biblioteca Kivy e tudo bem, vai funcionar sem problemas, depois precisamos instalar OpenCV, e tudo continua funcionando bem, entretanto começamos a desenvolver um sistema web, e instalamos Django e todas as bibliotecas necessárias.
Reparem que já começa a ficar tudo um pouco confuso, tudo instalado na mesma pasta junto da instalação principal do Python.
Mas agora podemos ter instalado uma biblioteca para usar com o Django que não vai funcionar por incompatibilidade com outra biblioteca instalada anteriormente para ser usada no nosso projeto Kivy.
E agora? Desinstalamos uma e deixamos a outra?
Vamos imaginar outra situação, temos instalado Django 3 e precisamos mexer em um projeto antigo desenvolvido com Django 2 com algumas bibliotecas que só funcionam com Django 2 e não funcionam com Django 3.
Entendem agora como o ideal é sempre ter uma instalação Python para cada projeto que vamos desenvolver?
A melhor solução é criarmos um ambiente virtual para cada projeto, ou pelo menos criar um para projetos parecidos ou com as mesma necessidade a nível de versões e bibliotecas.
Outra situação em que existe necessidade de utilizar ambientes virtuais, é quando queremos experimentar se as nossas aplicações funcionam com diferentes versões das mesmas bibliotecas.
Mas a principal razão, é mantermos as instalações do Python no sistema, originais, limpas e sempre prontas para que ambientes virtuais sejam criados sem problemas.

É importante também não confundir, versões diferentes do Python no Windows com ambientes virtuais diferentes.
Na prática cada ambiente virtual vai “criar uma cópia” de uma versão do Python que escolhermos, versão que já tenha sido instalada anteriormente no sistema.
Podemos ter várias versões do Python diferentes instaladas e podemos ter vários ambientes virtuais com a mesma versão do Python, mas em cada ambiente, diferentes bibliotecas.


Considerações Iniciais


No meu sistema já tenho instalado o Python 3.7.9 e o Python 3.9.0.

Vamos usar o terminal e o explorador do Windows.


Instalação Virtualenv


Vamos começar por ver se o Virtualenv já está instalado, para isso abrimos um terminal (prompt de comando) com permissões de administrador e digitamos.

where virtualenv

No caso de não estar instalado simplesmente digitamos.

pip install virtualenv

Na foto abaixo, podemos ver que no meu sistema já tenho o virtualenv instalado.
Pode parecer uma contradição em relação ao que expliquei anteriormente, mas é a única instalação que vamos fazer “junto” da instalação principal do Python no Windows.
No caso de termos várias versões diferentes do Python, vai ser instalado junto com a versão que o Windows “considera” como principal, como explicado neste artigo.
Se fizermos a instalação usando um terminal sem permissões de administrador, a instalação vai ser apenas para o usuário logado no momento.


Confirmação instalção do Virtualenv



Onde guardar os ambientes virtuais? Nomes e quantidade.


Vamos pensar juntos, se tivermos vários projetos que utilizam a mesma versão do Python, e as mesmas bibliotecas, basta criar um ambiente virtual para esses projetos.
Bibliotecas diferentes já precisamos de ambientes diferentes.
Mas resumindo, os ambientes virtuais podem ser guardados onde quiserem e terem o nome que quiserem.
Eu por exemplo, tenho uma pasta chamada devenvs onde guardo alguns.
Para projetos maiores e em especial com Django eu guardo o ambiente virtual dentro da própria pasta do projeto.

Vamos então criar uma pasta dentro da nossa pasta pessoal chamada ‘devenvs’.


Criar ambiente virtual



Criar um ambiente virtual.


Entramos dentro da pasta que criamos anteriormente.

Agora temos duas opções, ou criamos uma nova pasta com o nome que escolhermos para o ambiente virtual e depois dentro da pasta criamos o ambiente, ou vamos criar diretamente a pasta e o ambiente ao mesmo tempo.
Não sei explicar porquê, mas eu costumo criar primeiro a pasta escolhendo já o nome do ambiente virtual e depois sim criar o ambiente virtual.
Mas vou explicar as duas maneiras de fazer isso.

Dentro da pasta onde vamos guardar os ambientes virtuais, vamos criar outra pasta chamada py390 (pode ser qualquer nome)


Pasta dos ambientes virtuais


Vamos abrir um terminal, não é necessário um terminal com permissões de administrador.
Podemos usar o comando:

cd

Para chegar dentro da pasta onde vamos criar o ambiente virtual.
Em seguida digitamos:

virtualenv .

Atenção precisamos digitar ‘ virtualenv ‘ um espaço e um ponto ‘ . ‘
O ponto é necessário por que já criamos anteriormente a pasta do ambiente virtual.


Ambiente virtual


Já temos um ambiente virtual, com a versão Python 3.9.0.

Como utilizamos apenas ‘virtualenv’ sem definir a versão do Python, foi criado um ambiente com a versão principal do Windows, recordem que no meu caso tenho duas versões instalas no Windows, sendo a 3.9.0 a versão principal.

Agora chegou a hora de aprender como usar o ambiente virtual.



Como usar o Virtualenv

Antes de usar o ambiente virtual, por exemplo para instalar as bibliotecas necessárias, é necessário ativa-lo.

No terminal entramos dentro da pasta do ambiente virtual, no nosso caso chama-se ‘py390’, e depois precisamos entrar dentro da pasta Scripts.

Dentro da pasta Scripts, digitamos

activate

Este é o comando para ativar o ambiente virtual.

Reparem que agora entre parentes, temos o nome do ambiente virtual confirmando que está ativado.

Explicando de uma maneira simples, foi criado temporariamente nas variáveis de ambiente, um caminho (path) indicando ao Windows que a versão principal do Python, é a versão que está no ambiente virtual ativado.

Podemos continuar dentro da pasta Scripts ou mover para outra, mas os comandos ‘pip’ por exemplo para instalarmos bibliotecas necessárias, vão instalar essas bibliotecas dentro do ambiente virtual.

Se arrancarmos pelo terminal agora, um arquivo .py, o interpretador Python vai ser o do ambiente virtual.
Se utilizarmos um IDE e indicarmos como interpretador o ambiente virtual, a situação vai ser a mesma.
Com Visual Studio Code ou PyCharm por exemplo, ao abrirmos um projeto e indicarmos o ambiente virtual o próprio IDE ativa o ambiente virtual


Activar ambiente virtual


Para desactivar, basta digitar.

deactivate


Desactivar ambiente virtual



Como criar um ambiente virtual com uma versão especifica do Python


Embora a maneira de usar seja igual, dentro da pasta ‘Scripts’ activamos com ‘activate’, ou desactivamos com o comando ‘deactivate’.
Para criar este ambiente com uma versão do Python diferente, precisamos digitar um parâmetro a mais.
Vamos começar por criar uma nova pasta, onde vamos criar o novo ambiente virtual.
Vamos chamar de py379.

Entramos no terminal, e usamos o comando:

cd

Até entrarmos dentro da nova pasta, e digitamos:

virtualenv . --python=3.7.9

E já temos um ambiente virtual com o Python 3.7.9.

Se neste momento, apareceu algum erro, mais abaixo tem uma nota importante, onde explico outra forma de escolher a versão do Python para criar o ambiente virtual.

Aproveito para recordar que esta versão do Python já tinha sido instalada anteriormente no Windows e está no PATH.
Vejam este artigo: Como instalar várias versões Python no Windows 10, se têm alguma dúvida.


Escolher a versão do Python


Vamos digitar alguns comandos para que seja possivel entender mais facilmente como utilizar um ambiente virtual.

Podemos continuar no terminal, dentro da pasta do novo ambiente virtual, e digitamos o comando:

python

Reparem que o ambiente virtual não está ativado e por isso, o Python é o 3.9.0, a versão principal do Windows.


Python 3.9.0


Continuamos digitando:

exit()

Para sair do Python.
Dentro da pasta do ambiente virtual py379, para entrarmos na pasta Scripts, usamos:

cd Scripts

E depois:

activate

Agora que já ativamos o ambiente virtual, digitamos novamente.
python

Neste momento estamos a usar o Python 3.7.9.


Python 3.7.9


Nota importante

Até agora criámos dois ambientes virtuais com Virtualenv, com diferentes versões de Python já instaladas anteriormente.
Mas as duas versões que usei neste tutorial, além de já estarem instaladas, também estão no PATH do Windows.

No caso de termos necessidade de criar um ambiente virtual com uma versão do Python que não esteja no path, precisamos utilizar um comando que indique o caminho completo do Python executável.

Podemos encontrar o caminho de várias maneiras, mas eu costumo usar o explorador do Windows.


Python


Voltamos para o terminal, criamos uma nova pasta dentro da pasta onde guardamos os ambientes, desta vez vamos criar a pasta pelo terminal em vez de usar o explorador do Windows.

Dentro da pasta ‘devenvs’, usamos o comando:

mkdir venv379

para criar a pasta ‘venv379’, depois entramos nela com o comando:

cd venv379

Dentro da pasta onde vai ser criado o novo ambiente virtual em vez de usarmos
‘virtualenv . –python=3.7.9’, vamos utilizar o comando:

virtualenv . --python "C:\Program Files\Python37\python.exe"


Python



Considerações finais e resumo


Creio que neste momento já entenderam a necessidade de sempre desenvolvermos nossos projetos utilizando ambientes virtuais, acredito também que já todos conseguem criar e utilizar sem problemas Virtualenv.

Agora é possível instalar e desinstalar com segurança, novas bibliotecas e experimentarmos o que quisermos.

Para apagar um ambiente virtual basta apagar a pasta.

Como boa prática a primeira coisa que faço sempre, depois de criar um ambiente virtual, é atualizar o ‘pip’ e o ‘setuptools’

E nunca esqueçam de ativar o ambiente para ser usado.
No caso de mudarem as pastas de lugar lembrem também que é necessário informar os IDEs que utilizam.