Совместное использование Python virtualenv среды - PullRequest
13 голосов
/ 01 марта 2012

У меня есть Python virtualenv (созданный с помощью virtualenvwerapper) в одной учетной записи пользователя. Я хотел бы использовать его из другой учетной записи на том же хосте.

Как я могу это сделать? Как я могу настроить виртуальные среды так, чтобы они были доступны любому пользователю на хосте? (В первую очередь Linux / Debian, но также и Mac OSX.)

Спасибо.

Ответы [ 2 ]

8 голосов
/ 01 марта 2012

Поместите его в независимый от пользователя каталог и сделайте его читаемым для группы.

Например, для библиотек я использую /srv/http/share/ для обмена кодом между веб-приложениями.

Вы можете использовать /usr/local/share/ для обычных приложений.

5 голосов
/ 21 января 2014

Я должен был сделать это для коллег по работе. @Flavius ​​ answer прекрасно работал, когда я добавил несколько команд для обработки virtualenvwrapper. Вам нужно поместить папку venvs и проекты WORKON в такое место, где вы и ваш босс / друг сможете найти и использовать.

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

Предполагая, что вы хотите, чтобы все на машине могли одновременно mkproject и workon:

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

В противном случае chown и chmod в соответствии с вашими требованиями безопасности.

Если у вас есть какие-либо хуки или сценарии, которые ожидают, что ~ / .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_project и workon awesome_new_python_project.

В качестве бонуса добавляйте хуки для загрузки папки проекта в возвышенном виде каждый раз, когда ваш workon.

...