virtualenv: Ambientes Virtuais para Python

Para isolar bibliotecas e configurações, o python tem um utilitário que cria ambientes virtuais. A grande vantagem da criação desses ambientes é que você pode ter versões diferentes de bibliotecas e uma dependência não afetar a outra. Assim ao instalar uma biblioteca ela não será mais feita de forma global, mas somente para esse ambiente virtual.

O jeito mais simples de fazer isso é utilizando o pip:

sudo pip install virtualenv

Entretanto, em algumas distribuições como o Gentoo, isso normalmente oferece um risco, pois você estará instalando uma biblioteca interna que pode ocasionar conflitos com as bibliotecas de sistema. No meu caso, o Gentoo oferece já um pacote de sistema que faça isso. Se você utiliza essa distro que eu, ao invés de utilizar o comando anterior, utilize esse:

sudo emerge -av dev-python/virtualenv

Verifique se a instalação foi bem sucedida:

virtualenv --version

Para criar um ambiente virtual novo é bem simples. Acesse um diretório onde vai ser criado o ambiente e digite o seguinte comando substituindo nome_do_ve pelo nome do ambiente desejado:

virtualenv nome_do_ve

Você deverá ter uma saída como essa:

Using base prefix '/usr'
New python3.7 executable in /development/testes/nome_do_ve/bin/python3.7
Not overwriting existing python3.7 script /development/testes/nome_do_ve/bin/python3.7 (you must use /development/testes/nome_do_ve/bin/python3.7)
Installing setuptools, pip, wheel…
done.

Para utilizar o ambiente é só ativá-lo:

source nome_do_ve/bin/activate

Com isso, você pode instalar as dependências que você precisa e trabalhar com o python, após terminar é só desativar:

source nome_do_ve/bin/activate

Para sair do ambiente é só digitar: deactivate. Para apagar o ambiente é só remover a pasta.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6