Ativando um virtualenv “sem as mãos”

Virtualenv é uma ferramenta fantástica e obrigatória (na minha opinião) para desenvolvimento em Python. Para facilitar ainda mais o processo de desenvolvimento um pacote essencial é o virtualenvwrapper: um “empacotador” (em tradução literal) que permite acessar facilmente os comandos shell relacionados ao ambiente virtual.

Todavia, mesmo com todas essas facilidades surge um problema para rodar aplicações isoladas num virtualenv em produção:

Como ativar automaticamente o ambiente virtual?

Para isso podemos usar o script activate_this.py
Podemos encontrá-lo no seguinte path:

~/.virtualenvs/<seu virtualenv>/bin/activate_this.py

O objetivo desse script é ativar o python do ambiente virtual em questão. Assim, seu ambiente terá acesso às libs necessárias para a sua aplicação rodar sem problemas.

Olha mãe: sem as mãos…!

Para usar o script adicione as linhas abaixo no arquivo que deve iniciar sua aplicação.
Se a sua aplicação rodar em linha de comando (como um serviço do Linux, por exemplo) as linhas abaixo devem ser colocadas no arquivo que inicia a aplicação. Caso seja uma aplicação web a inserção do código abaixo deve ser feita no script carregado pelo servidor web, o wsgi.py,  por exemplo.

activate_this = '/path/to/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

Feito isso, reinicie o serviço ou o servidor web.

Pronto! Agora seu ambiente virtual pode ser iniciado automaticamente.

Referências:

Virtualenvwrapper  – Read the docs: https://virtualenvwrapper.readthedocs.io/en/latest/

Deixe um comentário

O seu endereço de e-mail não será publicado.