18

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

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

谢谢。

4

2 回答 2

12

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

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

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

于 2012-02-29T20:44:15.303 回答
7

我不得不为同事做这件事。一旦我添加了一些命令来处理,@Flavius 的答案virtualenvwrapper就很好用。您需要将您的 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.

于 2014-01-21T18:22:01.070 回答