Ambiente virtual em Python

venv in python

Um dos objetivos do ambiente virtual é auxiliar no gerenciamento das dependências exigidas nos projetos. Um exemplo prático seria a necessidade de testar um código em uma versão antiga de um determinado pacote (ou biblioteca), sendo que na sua máquina esteja instalada a versão mais recente deste pacote. Para evitar algum possível conflito de versões, e possíveis danos no seu sistema operacional, é possível criar um ambiente virtual que deixará isolado os pacotes antigos necessários.

Particularmente, prefiro criar os ambientes virtuais em uma única pasta. O caminho da mesma é , /home/rafat/.virtualenvs/ . Note que o . antes da palavra virtualenvs, este . significa que a pasta fica “oculta”. Caso você use Windows, verifique o local mais apropriado.

A criação do ambiente virtual é relativamente simples. Há duas opções mais populares para a criação do ambiente virtual, uma é usando o venv ou pyvenv (maiores detalhes a seguir) e a outra opção é o conda. Neste exemplo, utilizaremos o venv, e vamos dividir o processo em etapas:

  1. criar uma pasta (diretório) com o nome desejado;
  2. criação do ambiente virtual
  3. ativar ambiente virtual
  4. instalar pacotes
  5. desativar ambiente virtual

Criando um diretório

Via terminal, acesse o diretório que conterá o ambiente virtual, e crie um diretório com o nome desejado. Neste exemplo usaremos teste_venv.

rt@av52a:~$ cd ~/.virtualenvs/
rt@av52a:~/.virtualenvs$ mkdir teste_venv
rt@av52a:~/.virtualenvs$ ls
> myownenv  teste_venv
rt@av52a:~/.virtualenvs$ 

Criando ambiente virtual

Até o Python 3.4 o comando pyvenv era recomendado para a criação do ambiente virtual. A partir da versão 3.6, a recomendação é usar o comando venv. Maiores informações consulte https://docs.python.org/3/library/venv.html. Desta forma vamos criar o ambiente virtual e listar o seu conteúdo.

rt@av52a:~.virtualenvs$ python3 -m venv ./teste_venv

rt@av52a:~.virtualenvs$ ls -l ./teste_venv/
--> bin
--> include
--> lib
--> lib64 -> lib
--> pyvenv.cfg
--> share
rt@av52a:~/.virtualenvs$ 

O comando ls -l tem objetivo de listar o conteúdo do ambiente virtual gerado. No diretório bin ficam os “executáveis” no lib os pacotes, e assim por diante.

Ativar o ambiente virtual

Para ativar o ambiente virtual utiliza-se o comando source, e na sequência o caminho /caminho_do_virtual_env/bin/activate.

rt@rt-av52a:~/.virtualenvs$ source ./teste_venv/bin/activate
(teste_venv) rafatieppo@rt-av52a:~/.virtualenvs$ 

Note que o nome do ambiente virtual ficará à esquerda entre parênteses.

Instalando pacote

Uma vez que o ambiente virtual está ativo, basta instalar os pacotes desejados. Como exemplo vamos usar o numpy.

(teste_venv) rt@rt-av52a:~/.virtualenvs$ pip3 install numpy
Collecting numpy
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/b8/46/40729c784/numpyx86_64.whl (14.1MB)
    100% |████████████████████████████████| 14.1MB 128kB/s 
Installing collected packages: numpy
Successfully installed numpy-1.21.1
(teste_venv) rafatieppo@rt-av52a:~/.virtualenvs$

Pronto, para usar o seu ambiente virtual basta direcionar o seu editor (ou IDE) de preferência, ou se quiser, apenas digite python3

(teste_venv) rt@av52a:~/.virtualenvs$ python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Para desativar

Apena digite deactivate.

(teste_venv) rt@av52a:~/.virtualenvs$ python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44) 
[GCC 8.3.0] on linux
>>> exit()
(teste_venv) rt@av52a:~/.virtualenvs$ deactivate 
rafatieppo@rt-av52a:~/.virtualenvs$ 

Para remover o diretório, primeiro desative e posteriormente use rm -r ./teste_venv/

References

https://www.python.org/

https://docs.python.org/3/library/venv.html

 Share!

 
comments powered by Disqus