Sharing Python virtualenv environments

五迷三道 提交于 2019-12-04 16:59:52

问题


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.


回答1:


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.




回答2:


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.



来源:https://stackoverflow.com/questions/9506281/sharing-python-virtualenv-environments

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!