Publicado em Progamação, Python, Tecnologia

Virtualenv: Isolando a Cobra (Python)

Trabalhando em vários projetos Python ao mesmo tempo? Conflito de dependencias e versões em porta… Normal, não desespera que isso tem solução. O Virtualenv cria um ambiente isolado virtual para cada projeto, com a sua própria versão do Python (2.7, 3.4, etc.) e dos módulos que o projeto precissa. Agora, em vez de ficar tudo junto e conflituando em /usr/lib/python2.7/dist-packages/ (se estamos usando Linux e a versão 2.x do Python), cada projeto vai conter uma pasta com a copia de cada pacote necessário, independente dos outros.

Instalação

Para instalar o Virtualenv, no Debian e derivadas (Ubuntu, Mint, Elementary, etc.) primeiro precisamo do Pip:

~$ sudo apt-get update && sudo apt-get -y install python-pip

E agora sim:

~$ sudo pip install virtualenv

Usando o Virtualenv

É tão simples como criar a pasta do projeto, pular dentro dela e mais um simples comando:

~$ mkdir meu_projeto
~$ cd meu_projeto
~$ virtualenv -p /usr/bin/python[version] venv

Assim, o Virtuaenv criou a pasta “venv” que vai conter tudo o necessário pra manter a nossa cápsula espacial completamente funcional e isolada do resto do Universo. Esses passos, a gente precisa realizar apenas uma vez para cada projeto.

Agora, cada vez que trabalharmos num projeto específico, ativamos o Virtualenv no começo da nossa sessão de trabalho, e desativamos no final ou quando mudar para um outro projeto:

~$ source venv/bin/activate

… (sessão de trabajo: pip install alguma_coisa, etc.)

~$ deactivate

Reproducindo o ambiente

Podemos listar todas a dependencias do projeto:

~$ pip freeze

Guardá-las num arquivo de texto:

~$ pip freeze > requirements.txt

E recriar o ambiente numa outra máquina:

~$ pip install -r requirements.txt

 

Simples e útil!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.