Bem, e assim que todo mundo faz. O Jeff Winkler teve a ideia de fazer um script que ficava procurando por mudancas em arquivos terminados em .py e quando havia modificacao, rodava o nosetests. Ele chamou o script de nosy.O Bernardo Heynemann acabou pegando a ideia do Jeff e criando o peon, que busca recursivamente por modificacoes em arquivos terminados em .py e usa o pynotify pra mostrar um alerta, caso o comando passado retorne algum status code diferente de zero.Pra instalar o peon voce pode baixar o projeto no github, clona-lo ou instala-lo atraves do arquivo compactado gerado pelo github:$ git clone http://github.com/heynemann/peon.git$ cd peon$ pip install .ou$ pip install http://github.com/heynemann/peon/zipball/masterPara usar o peon e super simples, basta chama-lo passando o comando que voce quer que seja executado quando alguma modificacao for feita. No meu caso, eu queria que o peon rodasse um script que fazia build e rodava os testes de um projeto, e caso houvesse alguma falha ou erro no script de build, mostrasse a notificacao com o pynotify. No meu caso era um Makefile que o peon rodava. Era basicamente:$ peon makeO meu problemaO pynotify e um pacote instalado pelo Ubuntu, sob o pacote do GTK e quando eu criava um ambiente virtual totalmente isolado (--no-site-packages) eu nao tinha acesso ao GTK e nem ao Cairo (dependencia) e assim, nao tinha como usar o pynotify pra exibir os alertas.A minha solucaoA primeira coisa e que eu precisava instalar o peon sempre que eu criasse um ambiente virtual. Fiz isso usando o postmkvirtualenv. Outra coisa que eu acabei fazendo foi criar um link simbolico dentro dos meus site-packages apontando pro GTK e pro Cairo. A solucao que eu cheguei foi usar o postmkvirtualenv pra criar os links simbolicos e adicionar as entradas devidas no easy-install.pth.Ok, falei um monte de coisas. Mas... e ai, como eu faco isso? A primeira coisa e instalar o peon. Uma das features do github e que ele oferece download dos repositorios de forma compactada. Assim, pra instalar o peon basta um:$ echo 'pip install http://github.com/heynemann/peon/zipball/master' >>\> $WORKON_HOME/postmkvirtualenvAgora a parte complicada e fazer os links simbolicos e adicionar as entradas no easy-install.pth.$ echo "> cwd=`pwd`> cdsitepackages> ln -s /usr/lib/pymodules/python2.6/gtk-2.0 .> ln -s /usr/lib/pymodules/python2.6/cairo .> sed -i '1a ./gtk-2.0' easy-install.pth> sed -i '1a ./cairo' easy-install.pth> cd $cwd> " >> $WORKON_HOME/postmkvirtualenvA primeira linha, cwd=`pwd`, e a ultima, cd $cwd foram adicionadas pra ser possivel voltar pro diretorio atual depois de executar o hook.Agora ja e possivel usar o peon com ambientes virtuais sem problemas!Faca o teste ;-)O meu objetivo com issoNo fim das contas eu acabei criando um postmkvirtualenv que instala alguns pacotes, inclusive o peon, e cria os links simbolicos. Eu sempre crio os links e instalo o peon porque o meu objetivo com os ambientes virtuais e ter um ambiente virtual pra cada projeto que eu contribuo, assim, cada projeto e totalmente isolado do outro e eu tenho um alerta caso os testes nao sejam executados com sucesso em algum momento.ObservacoesTudo que eu falei aqui esta relacionado a Python 2.x. Todos os lugares onde o