Corrigir virtualenvwrapper para trabalhar com tecido

Tecido é bom para sites implantar e virtualenv com virtualenvwrapper são uma obrigação para as dependências do punho em projetos de python. Ao instalar o virtualenvwrapper, você adiciona algumas linhas ao seu .bashrcarquivo para que ele faça sua mágica, algo como:

if [ -f /usr/local/bin/virtualenvwrapper.sh ] 
then
source
/usr/local/bin/virtualenvwrapper.sh
fi

O problema aparece quando você tenta usar os comandos virtualenvwrappers de dentro de uma tarefa de malha, por exemplo:

def deploy():
code_dir
= '/srv/yourwebsite'
with cd(code_dir):
with prefix('workon niceproject'):
run
("git pull")
run
("web/manage.py syncdb")
run
("web/manage.py migrate niceproject_api")

Você pode obter um erro como

/bin/bash: workon: command not found

Isso porque algumas distros, como o Ubuntu, não executam o código se não for uma sessão interativa.bashrc , portanto, os comandos virtualenvwrapper não estão disponíveis. Para corrigir isso, mova o código de carregamento virtualenvwrapper de para.bashrc.bash_profile e ele funcionará perfeitamente.