共享Python virtualenv环境

che*_*vik 13 python virtualenv virtualenvwrapper

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

我怎样才能做到这一点?如何设置虚拟环境以便主机上的任何用户可以使用?(主要是Linux/Debian,还有Mac OSX.)

谢谢.

Fla*_*ius 8

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

例如,对于库,我/srv/http/share/用于跨Web应用程序共享代码.

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

  • 现在我懂了.1:用<< virtualenv hothouse -p python2.7 >>创建环境.这将为工作目录中的环境创建一个目录,并激活子目录bin /和脚本.2:使用带有<< source [环境目录的绝对路径]/bin/activate >>的环境.通过适当的权限,终端环境现在称为virtualenv.离开并停用.同样的调用适用于使用virtualenvwrapper创建的环境.谢谢. (2认同)

hob*_*obs 5

我必须为同事这样做.一旦我添加了一些命令来处理,@ Flavius的答案就很有效virtualenvwrapper.您需要将您的venvs和WORKON项目文件夹放在您和您的老板/朋友可以找到并使用的某个位置.

sudo mkdir -p /usr/local/share
sudo mv ~/.virtualenvs /usr/local/share
sudo mkdir -p /usr/src/venv/
Run Code Online (Sandbox Code Playgroud)

假设您希望机器上的每个人都能够同时mkprojectworkon:

chmod a+rwx /usr/local/share/.virtualenvs
chmod a+rwx /usr/src/venv
Run Code Online (Sandbox Code Playgroud)

否则,chownchmod符合您的安全要求.

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

ln -s /usr/local/share/.virtualenvs ~/.virtualenvs
Run Code Online (Sandbox Code Playgroud)

然后修改你的(和你朋友的).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
Run Code Online (Sandbox Code Playgroud)

一旦你注销并重新登录(或者只是source ~/.bashrc你应该很好地使用像mkproject awesome_new_python_project和那样的命令workon awesome_new_python_project.

作为奖励,每次加入时都添加钩子以加载项目文件夹workon.

  • 我似乎无法使其工作(按照您的建议设置时找不到模块) - `mkdir -p /usr/src/venv` 的作用是什么 - 该目录有什么用途吗? (2认同)