[Answer]-Fabric and virtualenv working on Ubuntu but not on Solaris

1👍

It’s Virtualenvwrapper that’s failing, not Fabric or Virtualenv. Try using Virtualenv directly with:

with prefix('source path/to/virtualenv/bin/activate'):
    sudo('manage.py collectstatic --noinput')

EDIT:

to try to fix virtualenvwrapper, try wrapping your code in the following, and see if it solves the original error.

with prefix('source path/to/virtualenvwrapper.sh'):
👤Thomas

0👍

Consider where you have put the following?

export WORKON_HOME=/opt/virtual_envs
source /usr/local/bin/virtualenvwrapper.sh

According to man bash, the -l flag, that fabric issues, will cause the the following to happen

[bash] looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.

I had this bootstrap code in .bashrc, which wasn’t being sourced by bash -l. I moved those two lines to .profile, and can now do the fabric lines below. (I don’t have .bash_profile or .bash_login)

with cd('/www/code'):
    with prefix('workon code'):
        run('./manage.py validate')

Leave a comment