Categoria: Desenvolvimento

  • 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/