共享Python virtualenv环境

时间:2012-02-29 20:40:57

标签: python virtualenv virtualenvwrapper

我在一个用户帐户中有一个Python virtualenv(使用virtualenvwerapper创建)。我想在同一主机上的其他用户帐户中使用它。

我该怎么做? 如何设置虚拟环境以便主机上的任何用户可以使用? (主要是Linux / Debian,还有Mac OSX。)

感谢。

2 个答案:

答案 0 :(得分:7)

将其放在用户中立的目录中,并使其成为组可读的。

例如,对于库,我使用/srv/http/share/在Web应用程序之间共享代码。

您可以将/usr/local/share/用于普通应用程序。

答案 1 :(得分:5)

我必须为同事这样做。一旦我添加了一些命令来处理virtualenvwrapper,@ Flavius answer工作得很好。您需要将您的venvs和WORKON项目文件夹放在您和您的老板/朋友可以找到并使用的位置。

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

假设您希望机器上的每个人都同时拥有mkprojectworkon

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

其他chownchmod符合您的安全要求。

如果您有任何希望〜/ .virtualenvs处于正常位置的钩子或脚本,您最好将其符号链接(在您的用户帐户和您的朋友的身上)

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

然后修改您的(和您朋友的.bashrc文件,让virtualenvwrapper知道您移动的位置。你的bashrc应该是这样的:

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

一旦您退出并重新登录(或只是source ~/.bashrc,您应该选择mkproject awesome_new_python_projectworkon awesome_new_python_project等命令。

作为奖励,每次workon添加钩子以在崇高时加载项目文件夹。