O Python virtualenv
Para iniciarmos o ambiente, precisamos instalar alguns pacotes do Python
. Nos exemplos abaixo utilizarei o Debian
como sistema operacional, e o apt
como gerenciador de pacotes.
Primeiro atualize o gerenciador de pacotes sudo aptitude update && sudo aptitude upgrade
e instale os pacotes de desenvolvimento.
sudo aptitude install build-essential python-dev python-virtualenv python-pip python-software-properties
Organizando os diretórios
Eu gosto de separar meus projetos em espaços de trabalhos diferentes.
Por exemplo:
Em meu diretório $HOME
crio as seguintes pastas.
mkdir workspace-python
mkdir workspace-[nome da empresa]
mkdir venvs
O diretório workspace-python
, dispensa comentários. E o workspace-[nome da empresa]
é para separar por projeto e empresa respectivamente.
A pasta venvs
será abordada na próxima seção.
Criando o ambiente virtual com o comando virtualenv
Para o desenvolvimento web com Python
é de suma importância que haja um ambiente virtual isolado do seu sistema operacional.
Pois caso, instale o Django
sem esse ambiente, as bibliotecas baixadas do Django
podem atrapalhar as bibliotecas do seu sistema operacional e também em outras instalações por exemplo do Web2py
ou Flask
caso você queira instalá-las.
Ha particularidades ao se instalar pacotes do python
, como o python-psycopg2
. Citando um exemplo, em um servidor de produção onde todos os seus projetos utilizam o PostgresSql
como SGBD
, vale a pena a instalação desse pacote globalmente. Logo abaixo mostrarei como utilizar o virtualenv
para utilizar o pacote global.
- Criando o seu
virtualenv
lucas @ notebook in /venvs
$ virtualenv --unzip-setuptools nome_do_projeto
$ cd nome_do_projeto
- Ativando o
virtualenv
lucas @ notebook in /venvs
$ source bin/activate
Após a ativação do ambiente virtualenv
o seu shell deverá aparecer algo parecido com isto.
(nome_do_projeto)
lucas @ notebook in /venvs
$
O (nome_do_projeto)
nos parêntesis, significa que você esta no ambiente virtual ativado.
- Desativar o ambiente
virtualenv
(nome_do_projeto)
# lucas @ notebook in /venvs
$ deactivate
Opções do virtualenv
O comando virtualenv
possui muitas opções. Uma delas utilizada no exemplo acima é o --unzip-setuptools
, que descompacta os arquivos fontes e .egg
para que você possa visualizá-los.
Abaixo segue o diretório, onde são salvos os pacotes instalados.
(nome_do_projeto)
# lucas @ notebook in /venvs/nome_do_projeto/lib/python2.7/site-packages
Outra opção interessante falada anteriormente é a capacidade do virtualenv
utilizar os pacotes instalados globalmente em seus sistema operacional.
Para isso utilize a opção --system-site-packages
.
No virtualenv
ha varias opções que podem ser usadas, como também passar qual será a versão do interpretador python
(-p /usr/bin/python3.3)
.
O virtualenvwrapper
O virtualenvwrapper nada mais é que uma extensão do virtualenv
. Ele entra como um utilitário, para que se tenha menos trabalho ao criar ambientes virtuais.
É necessário ter o pip
instalado em seu sistema operacional. Caso não tenha utilize o comando sudo aptitude install python-pip
.
Com usuário comum, execute os comandos.
# lucas @ notebook in /venvs
$ sudo pip install virtualenvwrapper
Como estou utilizando o zsh
devo editar o arquivo ..zshrc
encontrado dentro do meu diretório $HOME
.
Se você utiliza o bash
, altere o arquivo .bashrc
.
Adicione as linhas abaixo no final do arquivo, para que, quando você abra um terminal os comandos relacionados ao virtualenvwrapper
sejam sempre executados.
$ tail .zshrc
export WORKON_HOME=~/venvs
source /usr/local/bin/virtualenvwrapper.sh
Utilizando o virtualenvwrapper
Para criar um ambiente virtual, sem ter que utilizar o extenso comando virtualenv --unzip-setuptools nome_do_projeto; cd nome_do_projeto; source bin/activate
faça:
# lucas @ notebook in /venvs
$ mkvirtualenv nome_do_projeto_um
$ mkvirtualenv nome_do_projeto_dois
Nota: O mkvirtualenv
aceita as mesmas opções do virtualenv
Para alterar de ambiente virtual utilize o workon
# lucas @ notebook in /venvs
$ workon nome_do_projeto_um
(nome_do_projeto_um)
# lucas @ notebook in /venvs
$ workon nome_do_projeto_dois
(nome_do_projeto_dois)
# lucas @ notebook in /venvs
$
Nunca se esqueçam de que o ambiente virtual deve estar ativado.
Abraços a todos!