By

Instalando e configurando virtualenv(wrapper)

Python Logo


Se você programa em Python, principalmente em projetos que tem várias dependências, já deve ter pensando duas vezes antes de instalar vários pacotes Python no seu sistema. Imagine como seria bom se você pudesse ter um interpretador de Python separado para cada projeto seu, com as devidas dependências deles instaladas e o Python do seu sistema limpinho, só com o que ele realmente precisa ter.





VirtualEnv


Pare de imaginar coisas, isso EXISTE! E se chama virtualenv. A instalação é simples. Antes de tudo, caso não tenha o pip instalado, instale-o com:

 sudo easy_install pip


E depois, o virtualenv propriamente dito:

 sudo pip install virtualenv


Agora você já pode criar e ativar ambientes Python virtuais usando a sintaxe:

virtualenv --no-site-packages nomedoambiente


source nomedoambiente/bin/activate


O primeiro comando cria um ambiente virtual numa pasta chamada “nomedoambiente” totalmente independente do Python do sistema e o segundo ativa o mesmo. Para desativar é só usar:

deactivate






VirtualEnvWrapper


O único problema do virtualenv, pelo menos na minha opinião, é a localização dos ambientes e a maneira como eles são ativados. É muito chato ter que ficar lembrando disso toda hora. E existe uma solução pra isso, chamada virtualenvwrapper. Ele organizar seus ambientes virtuais em uma única pasta e você pode ativar qualquer um deles apesar usando o comando: workon nomedoambiente. A instalação dele também é simples como a do virtualenv.

sudo pip install virtualenvwrapper


Porém, você precisará definir em qual pasta vão ficar os ambientes virtuais criados com ele. Além de carregá-lo sempre que abrir o terminal. Para isso, execute:

 echo source /usr/local/bin/virtualenvwrapper.sh >> ~/.bashrc


 echo export WORKON_HOME=~/.pythonenvs >> ~/.bashrc


Obs.: Lembre-se de criar o diretório .pythonenvs na home do seu usuário.

Agora é só fechar e abrir o terminal novamente e você já poderá criar um ambiente virtual usando o comando:

 mkvirtualenv teste


Você também poderá copiar e deletar um ambiente usando, respectivamente:

 cpvirtualenv teste teste_copia


 rmvirtualenv teste_copia


E para instalar bibliotecas nos ambientes virtuais é só usar normalmente o pip (sem sudo).

Agora você pode ter um interpretador para cada projeto totalmente independente do seu Python global e com suas próprias bibliotecas.





VirtualEnvWrapper.Project (bônus)


Como se manipular ambientes virtuais com o virtualenvwrapper não fosse absurdamente fácil, existe um plugin para ele chamado virtualenvwrapper.project que além de manipular os Pythons virtuais também manipula projetos e liga eles com os ambientes virtuais. Os projetos ficam organizados em uma pasta definida no script e executando o comando “workon” com um projeto criado nele (usando o comando “mkproject”) ativa automaticamente o ambiente virtual e a pasta do projeto criado.

A instalação é NOVAMENTE muito simples e parecida com a do virtualenvwrapper:

sudo pip install virtualenvwrapper.project


echo export PROJECT_HOME=$HOME/Devel >> ~/.bashrc


Substitua “$HOME/Devel” para a pasta onde você queira que fiquem os projetos e lembre-se de criá-la antes de usar o virtualenvwrapper.project. E lembre-se de reiniciar o terminal também.

Criei novos projetos com o comando:

mkproject nomedoprojeto


Uma pasta com o nome “nomedoprojeto” será criada, assim como um ambiente virtual com o mesmo nome. Quando você usar o comando “workon nomedoprojeto” além de ativar o novo interpretador, o seu diretório corrente mudará automaticamente para a pasta do projeto, que está dentro da pasta definida logo acima.

O virtualenvwrapper.project só tem um pequeno problema: ainda não existe um comando para deletar um projeto inteiro. Eu mesmo farei isso assim que tiver tempo. \o/

Qualquer problema ou sugestão é só comentar!

Obrigado pessoal e até a próxima. :D

By

[DICA] Repositórios do Google para Linux

Google Logo


Venho trazer uma dica rápida para todos meus amigos (ou não) leitores que usam Linux: repositórios de aplicações do Google. Não é o repositório do Google Chrome, mas sim do Picasa 3 For Linux e do Google Desktop Linux. O Picasa todos nós já conhecemos, eu acho né? Mas o que me chamou a atenção foi o Google Desktop Linux. É como se o Google usasse seu algoritmo para indexar arquivos do nosso computador, gmail etc… E junta tudo em uma caixa de busca rápida que você acessa direto do Desktop. É genial!

Seguem as instruções para você instalar o repositório da Google no seu Linux, qualquer que seja:

 wget https://dl-ssl.google.com/linux/google-repo-setup.sh


 bash google-repo-setup.sh


Depois disso você já pode instalar os dois programas usando:

 sudo apt-get install picasa google-desktop-linux


Até a próxima pessoal! Qualquer dúvida ou problema é só postar ai. (:

By

Aula/Dojo na UENF!

Coding Dojo Symbol


Bom pessoal, venho aqui falar da grande iniciativa do pessoal de alunos sexto período de Ciência da Computação e Informática (Hugo Maia, Eduardo Hertz e Max) a pedirem à coordenadora do curso para ministrarem as aulas de Laboratório de Programação e além disso, em forma de Dojo. Eles desenvolvem em Ruby on Rails para a própria faculdade e são adeptos do agilismo, além de participar de grupos como o DojoRio.

Eu não pude permanecer durante muito tempo na aula deles, pois tinha aula de Estruturas de Dados 2 no mesmo horário, mas vou fazer um pequeno relato sobre a aula.

Quando os alunos entraram na sala e viram o pessoal do sexto período eles estranharam, porque a matéria seria ministrada pela coordenadora do curso. Então ele explicou que os veteranos iriam ministrar aulas de programação em forma de Coding Dojo para essa matéria. Terminada a explicação sobre a matéria, eles começaram com uma apresentação muito boa sobre o Dojo, de maneira geral, pro pessoal pegar a alma do negócio.

Ao fim da apresentação eles já foram convocados a meter a mão na massa! O problema do Fizz Buzz foi escolhido por ser bom para um primeiro Dojo e a linguagem foi Ruby. Achei a escolha da linguagem perfeita: Ruby é simples e expressivo o suficiente para deixar de longe as dores de cabeça de uma linguagem acadêmica/científica, como Pascal ou C, e permitir que a pessoa que esteja programando preste mais atenção no problema.

Primeiro os próprios “professores” participaram no Dojo, para ensinarem, na prática, a dinâmica aos alunos. Dai em diante eles foram chamando os alunos a participarem. No início todos tinham um pouco de vergonha e medo de não saber a sintaxe da linguagem, apesar disso, quando o primeiro foi participar, viu que é simples. Afinal, todos estão na aula/dojo para aprender. Hugo, Eduardo e Max precisavam estar participando as vezes para colocar os alunos nos trilhos e para programar  nas partes que envolviam questões de orientação a objetos (essa é uma matéria do quarto período), mas a participação deles deve diminuir conforme as aulas forem passando.

Um ponto interessante é que a pontuação da matéria é baseada em presença e participação. Não que seja com a intenção de “enfiar” o Dojo e algumas técnicas de agilismo na cabeça dos alunos, mas sim mostrar a eles um conceito novo e faze-los ter conhecimento sobre ele para depois julgar como queiram.

Estive matutando durante a aula/dojo e cheguei a conclusão que esse tipo de aula é muito importante! Os alunos aprenderão a desenvolver algoritmos de uma maneira bem interessante e produtiva, uma nova linguagem (Ruby), novos e promissores métodos de desenvolvimento. E além disso estarão aprendendo coisas que verão em matérias seguintes sem saber, facilitando para eles quando chegarem a tal matéria.