Question

I have a Python virtualenv (created with virtualenvwerapper) in one user account. I would like to use it from another user account on the same host.

How can I do this? How can I set up virtual environments so as to be available to any user on the host? (Primarily Linux / Debian but also Mac OSX.)

Thanks.

Was it helpful?

Solution

Put it in a user-neutral directory, and make it group-readable.

For instance, for libraries, I use /srv/http/share/ for sharing code across web applications.

You could use /usr/local/share/ for normal applications.

OTHER TIPS

I had to do this for workmates. The @Flavius answer worked great once I added a few commands to handle virtualenvwrapper. You need to put your venvs and your WORKON projects folder some place you and your boss/friend can find and use.

sudo mkdir -p /usr/local/share
sudo mv ~/.virtualenvs /usr/local/share
sudo mkdir -p /usr/src/venv/

Assuming you want everyone on the machine to be able to both mkproject and workon:

chmod a+rwx /usr/local/share/.virtualenvs
chmod a+rwx /usr/src/venv

Otherwise chown and chmod to match your security requirements.

If you have any hooks or scripts that expect ~/.virtualenvs to be in the normal place, you better symlink it (on both your user account and your friend's)

ln -s /usr/local/share/.virtualenvs ~/.virtualenvs

Then modify your (and your friend's) .bashrc file to let virtualenvwrapper know where you moved things. Your bashrc should have something like this:

export PROJECT_HOME="/usr/src/venv/"
export WORKON_HOME="/usr/local/share/.virtualenvs"

export USR_BIN=$(dirname $(which virtualenv))
if [ -f $USR_BIN/virtualenvwrapper.sh ]; then
    source $USR_BIN/virtualenvwrapper.sh
else
    if [ -f /usr/bin/virtualenvwrapper.sh ]; then
        source /usr/bin/local/virtualenvwrapper.sh
    else
        echo "Can't find a virtualenv wrapper installation"
    fi  
fi

Once you log out and back in (or just source ~/.bashrc you should be good to go with commands like mkproject awesome_new_python_project and workon awesome_new_python_project.

As a bonus, add hooks to load the project folder in sublime every time your workon.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top