Como criar um ambiente de desenvolvimento python no Debian

sáb 07 fevereiro 2015

Estou me baseando na seguinte pergunta (e respostas) do StackOverflow para criar meu ambiente de desenvolvimento Python:

http://stackoverflow.com/questions/4324558/whats-the-proper-way-to-install-pip-virtualenv-and-distribute-for-python

1) Baixar o Virtualenv:
- Fui aqui: https://pypi.python.org/pypi/virtualenv#downloads
- Baixei a versão tar.gz
- A versão foi a 12.0.7, a mais recente no momento
- Para descompactar, rodei o seguinte:
   tar xvf virtualenv*

2) Escolher um lugar para o seu ambiente inicial
- O virtualenv cria um ambiente de desenvolvimento isolado. Não é exatamente uma máquina virtual, mas você pode imaginar que é algo parecido.
- No procedimento que estamos adotando, você vai criar um "ambiente zero". É um ambiente de desenvolvimento com as bibliotecas e módulos básicos dos quais você vai derivar ambientes específicos para cada projeto.
- Eu escolhi gravar o meu ambiente inicial em "\~/py-env0"

3) Criar o seu ambiente inicial
- Estou usando o python 2.7.8, mas não deve haver diferença para o python 3.
- Rodei o seguinte comando:
python virtualenv.py \~/py-env0
- Eu estava no diretório onde descompactei o arquivo do virtualenv que baixei acima.

4) Instale o virtualenv no seu ambiente inicial:
\~/py-env0/bin/pip install virtualenv*.tar.gz
ATUALIZAÇÃO (em 13/02/2015): Meu amigo Paulo Henrique me alertou que este passo é confuso. "Tem que executar o pip sobre o arquivo que eu já descompactei?". É isso mesmo! Se você tiver fé, confie em mim e rode assim mesmo. Se você precisar entender, corra para o fim do post (depois das referências) que eu explico.

5) Crie o ambiente de desenvolvimento do seu projeto:
\~/py-env0/bin/virtualenv pasta_do_projeto/env

6) Ative o ambiente de desenvolvimento quando estiver trabalhando nele:
. pasta_do_projeto/env/bin/activate
Repare que o comando começa com um ponto e um espaço.  Isso é importante! Isso faz com que o comando seja executado no ambiente (shell) atual.
Na maioria dos sistemas (os que usam o bash), isso equivale a:
source pasta_do_projeto/env/bin/activate

7) Alguns módulos exigem o pacote python-dev:
sudo apt-get install python-dev

PERGUNTA BÔNUS: Você deve versionar o ambiente junto com o projeto?
RESPOSTA: Não. Ao invés disso, versione o arquivo requirements.txt gerado com o comando abaixo:
pip freeze

Para instalar os módulos listados no arquivo, use o seguinte:
pip install -r requirements.txt

Referências:
http://stackoverflow.com/questions/6590688/is-it-bad-to-have-my-virtualenv-directory-inside-my-git-repository
http://stackoverflow.com/questions/6812207/how-can-i-correctly-install-multiple-non-package-distribute-virtualenv-pip-ecosys
http://askubuntu.com/questions/232932/in-a-bash-script-what-does-a-dot-followed-by-a-space-and-then-a-path-mean

Bons projetos!

Abs.,
Otávio


ATUALIZAÇÃO (em 13/02/2015): Mas por quê?! Por que rodar o "pip virtualenv*.tar.gz" no passo 4 ??!!

Vou tentar explicar...

Antes de começar o tutorial, não havia nenhum virtualenv, nem pip, nem nada na sua máquina. Quando você executa o passo 3, você roda o virtualenv a partir do código fonte. Ali você está criando um primeiro ambiente (que chamei de \~/py-env0). Só que neste primeiro ambiente, pasme!, não há nenhum virtualenv instalado.

Ahn?

Sabe aquele filme "A Origem" em que as pessoas vivem dentro de um sonho de uma pessoa que está sonhando que está tendo outro sonho? É tipo isso.

No seu ambiente linux (A), não tem virtualenv nenhum instalado:

A (nenhum virtualenv aqui)

No passo 3 você cria o primeiro "sonho", um ambiente em \~/py-env0:

A (nenhum virtualenv aqui)
      B (\~/py-env0, nenhum virtualenv aqui também)

Só que você está criando esse \~/py-env0 (B) justamente para poder ter uma base, um ponto de partida para criar outros ambientes. Então você precisa instalar o virtualenv neste ambiente B. É isso que você faz no passo 4:

A (sem virtualenv)
      B (\~/py-env0, agora com virtualenv!)

no passo 5, você usa esse virtualenv recém-instalado em B para criar o seu ambiente de projeto (C):

A (nunca terá virtualenv)
      B (\~/py-env0, o pai de todos os virtualenvs)
            C (projeto/env, o filho de B)

Neste ambiente C, depois de ativado (passo 6) você já pode dar "pip install qqcoisa" e instalar qualquer pacote. Pode até dar "pip install virtualenv" e instalar um virtualenv.

Peraí! Então eu poderia ter ativado o ambiente B e usado "pip install virtualenv" lá no passo 4? Sim, jovem gafanhoto. Só que o pip teria baixado de novo um pacote que você tinha acabado de baixar e estava bem à mão, compactado naquele arquivo .tar.gz. Sem nem precisar ativar nada...

É, eu sei... Não faz nenhum sentido... Respire e beba um copo d'água antes de ler o próximo parágrafo.

Se você está batendo cabeça e não conseguiu fazer nada disso, não se desespere. O python 2.7.9 já vem com o pip. Você pode dar um "pip install virtualenv" e ser feliz assim que instalar. Uma hora dessas eu experimento e conto aqui como é.

Abraços,
Otávio

debian / linux / tutorial /

Comentários

Como adicionar os repositórios contrib e non-free ao Debian 8 (Jessie)

sáb 07 fevereiro 2015

Demorei um pouco para me acostumar com o Gerenciador de Pacotes (Synaptic) do Debian 8 (Jessie). Minha versão do Synaptic é a 0.81.2.

Depois de apanhar um bocado, finalmente descobri como adicionar os repositórios contrib e non-free, necessários para a instalação do pacote hannah-foo2zjs (que usei para configurar ...

debian / linux / tutorial /

Continua…

Como instalar e usar o sudo no Debian 8 (Jessie)

dom 01 fevereiro 2015

Se você resolveu experimentar o Debian 8 e se deparou com a falta do comando sudo, este post é para você. 

Eu já tinha instalado o Debian Jessie e deixado ele mais com a minha cara e no meio do caminho instalei o sudo e várias outras coisas.

Hoje reinstalei ...

debian / linux / tutorial /

Continua…

Instalando o Java e acessando o Banco do Brasil no Debian XFCE Jessie

dom 04 janeiro 2015

Há algum tempo eu escrevi um post sobre como utilizar o site do Banco do Brasil (bb.com.br) no Ubuntu e ele foi um dos mais lidos deste blog.

Agora que estou usando o Debian XFCE Jessie (futuro Debian 8), fui entrar no site do banco e o site ...

debian / linux / tutorial /

Continua…

Como Extrair Arquivos Compactados no Debian Jessie ou Sid

qui 01 janeiro 2015

Hoje baixei um arquivo zip da internet e fiz o que seria natural, fui lá na pasta, cliquei no arquivo com o botão direito e depois em "Extrair aqui".

O que aconteceu? Nada! Uma mensagem de erro: "Falha ao extrair os arquivos. Nenhum gerenciador de arquivos compactados localizado". Então dei ...

debian / linux / tutorial /

Continua…

Deixando o Kdenlive bonito no Debian XFCE

dom 14 dezembro 2014

Quem acompanha meu canal no YouTubesabe que eu tenho usado o Openshot para editar vídeos (no final de cada vídeo sempre indico os softwares utilizados).

O Openshot é um software fácil e bonito, mas tem uns bugs muito irritantes.

[![](http://4.bp.blogspot.com/-0GWA79xcPYc/VI19Nn6QyOI/AAAAAAAACaY/Ztf4U8QtWxo/s1600 ...

debian / linux / tutorial /

Continua…

Instalar impressora HP Laserjet 1020 no Debian Linux 7.7 (Wheezy) e Debian 8 (Jessie)

qui 27 novembro 2014

(Atualizado em 07/12/2014 para incluir configuração no Jessie)

Fiquei um tempão apanhando para colocar minha impressora para funcionar.

No fim, parece que o que funcionou foi instalar o pacote hannah-foo2zjs.

ATUALIZAÇÃO (em 07/02/2015): Para localizar o pacote, você precisa adicionar os repositórios contrib e non-free ao ...

debian / linux / tutorial /

Continua…

Deixando o Debian XFCE bonito e utilizável

qui 27 novembro 2014

Logo que você instala o Debian 8 Jessie (ou o Debian 7 Wheezy com XFCE), você fica com um Linux horroroso que não dá nenhuma vontade de usar.

[![](http://1.bp.blogspot.com/-qNvbiufg_2Q/VHenSBbR8AI/AAAAAAAACXQ/9fzYo_Vfrmo/s1600/Captura%2Bde%2Btela%2B-%2B27-11-2014%2B-%2B20%3A32%3A44.png)](http://1 ...

debian / linux / tutorial /

Continua…

Instalando o Debian XFCE no Ultrabook Asus S46C

dom 16 novembro 2014

RESUMO PARA QUEM ESTÁ COM PRESSA: Se seu notebook é novo, instale o Debian 8 (Jessie). Esqueça o Wheezy (Debian 7) e poupe dores de cabeça.

Voltamos à programação normal:

Esta semana comprei um notebook novo para poder fazer atividades de edição de vídeo no Calango Hacker Clube.

O computador ...

debian / linux / tutorial /

Continua…