Fabric e virtualenvwrapper são duas ferramentas extremamente úteis se você estiver trabalhando com Django e lidando com um monte de implantações e ambientes diferentes. No entanto, usar os dois juntos é um pouco complicado, pois o Fabric usa sh em vez de bash ao usar a API local (). O problema com isso é que se você tentar ativar seu virtualenv, ele falhará com um erro “/ bin / sh: source: command not found”.
Tenho uma pequena função que implementa a solução alternativa postada aqui (1):
def django_manage(command='help', virtualenv='local-django'):
return "/bin/bash -l -c 'source /usr/local/bin/virtualenvwrapper.sh && workon " + virtualenv + " && python src/manage.py " + command + "'"
e eu uso assim:
local(django_manage("migrate app --noinput"))
(para fazer isso funcionar, você terá que fazer o seu cd postactivate virtualenv no diretório do projeto)
Espero que seja útil!
(1) http://stackoverflow.com/questions/8005348/why-doesnt-fabric-see-my-bash-profile