Como usar e criar Virtualenv no Linux (2020)

Como usar e criar ambientes virtuais com Virtualenv no Linux

Neste artigo vou explicar a necessidade de utilizar ambientes virtuais, como usar e criar, com Virtualenv no Linux
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 Linux (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 ambiente virtual, 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 Linux 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 Linux (2020).
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

O meu sistema operativo é o Mint 20, mas este tutorial serve também para Ubuntu, Debian e muitas outras distribuições Linux.

Neste artigo explico Como instalar várias versões Python no Linux (2020), de maneira correta e simples.

No meu Mint 20 já tenho instalado como instalações principais o Python 2.7.18 e 3.8.5 e postriormente instalei o Python 3.7.9, 3.8.2 e o 3.9.0.

AN Sistemas Como instalar o Python

Instalação Virtualenv

Vamos começar por atualizar o sistema, no terminal digitamos.

sudo apt update && sudo apt upgrade

Agora vamos ver se o Virtualenv já está instalado.

whereis virtualenv
Virtualenv no Linux 2020

Instalação Virtualenv

No caso de ainda não estar instalado simplesmente digitamos.

sudo apt install python3-virtualenv

Na foto anterior e na de abaixo podem ver que no meu caso já tenho o Virtualenv instalado.

Como Instalar Virtualenv no Linux

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 dentro da nossa pasta pessoal, uma pasta chamada ‘devenvs’ (pode ser qualquer nome e pode estar em qualquer lugar), onde vamos guardar nossos ambientes virtuais.
Para isso podemos usar o comando

mkdir devenvs
Ambientes virtuais para programação

Criar um ambiente virtual.

Entramos dentro da pasta que criamos anteriormente, com o comando.

cd devenvs

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 ‘venv01’ (pode ser qualquer nome).

mkdir venv01

Entramos dentro da pasta nova.

cd venv01

E agora criamos o ambiente virtual com o comando.

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.

AN Sistemas Virtualenv

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

Como utilizamos apenas ‘virtualenv’ sem definir a versão do Python, foi criado um ambiente com a versão principal do Linux, recordem que no meu caso tenho várias versões instalas no sistema, sendo a 3.8.5, 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 dentro do ambiente virtual, no nosso caso chama-se ‘venv01’, precisamos usar o comando ‘source’ e indicar o caminho até ao arquivo ‘activate’, que está dentro da pasta ‘bin’.

source bin/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 Linux que a versão principal do Python neste momento, é a versão que está no ambiente virtual ativado.

Agora 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

Como usar Virtualenv

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 digitando ‘source bin/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’.

Abrimos o terminal, usamos o comando, para entrarmos na pasta onde guardamos os ambientes virtuais.

cd devenvs

Criamos a nova pasta ‘py379’.

mkdir py379

Entramos dentro da pasta criada.

cd py379

E para criar o novo ambiente virtual, com a versão Python 3.7.9, 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 indicar 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 meu Mint 20.

Vejam este artigo, Como instalar várias versões Python no Linux (2020), se têm alguma dúvida.

Qual Python?

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.

which python3.7

Reparem que o ambiente virtual não está ativado e por isso, Python é o 3.7.9, mas a versão principal instalada no Linux, não o Python do ambiente virtual.

Agora ativamos o ambiente virtual.

source bin/activate

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

which python3.7

Neste momento estamos a usar o Python 3.7.9 do ambiente virtual.

Lembrem que para desativar basta digitar

deactivate

Nota Importante

Até agora aprendemos a instalar ambientes virtuais com Virtualenv, e com diferentes versões de Python já instaladas anteriormente.

No caso de termos necessidade de criar um ambiente virtual com uma versão especifica do Python, e tenhamos um erro ao usar o comando.

virtualenv . --python=<numero_da_versão>

Ou o Virtualenv não encontre a versão desejada, precisamos indicar o caminho completo do Python executável.
Podemos encontrar o caminho de várias maneiras, mas eu costumo usar o comando ‘which python<versão>’.
Vamos criar um novo ambiente virtual chamado ‘py390’ desta vez com o Python 3.9.0. (eu já tenho esta versão instalada no Linux).
Abrimos o terminal, vamos para dentro da pasta onde guardamos os ambientes virtuais e digitamos.

mkdir py390

Criámos uma nova pasta, e entramos nela.

cd py390

Procuramos o caminho para o executavel.

which python3.9

Em seguida, com o caminho encontrado, digitamos.

virtualenv . --python /usr/local/bin/python3.9

Criar uma pasta primeiro ou fazer tudo ao mesmo tempo?

Como aprendemos anteriormente, podemos criar uma pasta com o nome do ambiente virtual que vamos criar e depois criar o ambiente com o comando.

virtualenv .

Para criarmos a pasta e o ambiente ao mesmo tempo, em vez do ponto colocamos o nome do ambiente virtual e se necessário os atributos depois.
No exemplo da foto, estou a criar um ambiente virtual chamado teste_01 e escolhendo como versão do Python o 3.8.2

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 Linux (2020)

Para finalizar, agradeço por você ter chegado até aqui, e desejo que este post tenha sido útil.

This Post Has 2 Comments

Deixe uma resposta