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:
- criar uma pasta (diretório) com o nome desejado;
- criação do ambiente virtual
- ativar ambiente virtual
- instalar pacotes
- 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://docs.python.org/3/library/venv.html