Como usar e criar Virtualenv no Windows
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 como explico neste artigo Como instalar o Kivy no Windows 10 (2020), 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 uma versão 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.
A principal razão, manter as instalações do Python no sistema, originais, limpas e sempre prontas para que ambientes virtuais sejam criados sem problemas.
É importante 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.
Neste artigo explico Como instalar várias versões Python no Windows 10.
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, no meu caso já tenho 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 explico 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
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 um ambiente virtual
Entramos dentro da pasta que criamos anteriormente.
Agora temos 2 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.
Então dentro da pasta onde vamos guardar os ambientes virtuais, vamos criar outra pasta chamada py390 (pode ser qualquer nome)
Vamos abrir um terminal, não é necessário um terminal com permissões de administrador.
Com o comando
cd
Vamos até 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.
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 a 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 vamos entrar dentro 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
Para desativar, basta digitar.
deactivate
Como criar um ambiente virtual com uma versão especifica do Python
Embora a maneira de usar seja igual.
Ativamos entrando na pasta ‘Scripts’ e digitamos ‘activate’, ou desativamos 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.
Eu vou chamar de py379
Entramos no terminal, usamos o comando.
cd
Até entrarmos dentro da nova pasta, e digitamos.
virtualenv . --python=3.7.9
E já temos um ambiente virtual com Virtualenv, 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 criarem 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.
Vamos digitar alguns comandos para que possam olhar o que vai acontecer e assim entenderem mais facilmente como usar 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, Python é o 3.9.0, a versão principal do Windows.
Continuamos digitando.
exit()
Para sair do Python.
E 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.
Nota Importante
Até agora aprendemos a instalar ambientes virtuais com Virtualenv, e 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.
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 usar ‘virtualenv . –python=3.7.9’, vamos usar o comando
virtualenv . --python "C:\Program Files\Python37\python.exe"
Considerações finais e resumo
Creio que agora 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 estão a usar
Como usar e criar Virtualenv no Windows 10
Para finalizar, agradeço por você ter chegado até aqui, e desejo que este post tenha sido útil.