evve
@evve

Как правильно настроить virtualenvwrapper?

Привет всем!
Недавно решил попробовать virtualenvwrapper. Нашел инструкцию https://virtualenvwrapper.readthedocs.org/en/lates...
Сомневаюсь, что я все правильно сделал и прошу подсказать мне.

Итак, ставлю:
sudo pip install --install-option="--user" virtualenvwrapper

Затем настраиваю баш:
export WORKON_HOME=$HOME/web/proj-env #путь до виртуального окружения проекта
export PROJECT_HOME=$HOME/web/proj #путь где будет код проекта
export VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh
source /usr/local/bin/virtualenvwrapper_lazy.sh

Далее перехожу в папку с кодом проекта ~/web/proj и по-моему мнению у меня уже должно быть запущено виртуальное окружение, но нет, каждый раз после закрытия терминала нужно делать mkvirtualenv proj-env. Без этого не работает python manage.py runserver - стандартная ошибка:

Traceback (most recent call last):
File "manage.py", line 8, in
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

Если это действительно так, то в чем принципиальное отличие от простого виртуального окружения, когда нужно делать source bin/activate ?

Кстати, при запуске терминала сообщение: "bash: /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh: Нет такого файла или каталога"
Несколько раз удалял, ставил - все равно есть. В файле ~/.bashrc ничего кроме добавленных строк (описанных мною выше) нет...
  • Вопрос задан
  • 5434 просмотра
Пригласить эксперта
Ответы на вопрос 3
@marazmiki
Укротитель питонов
Далее перехожу в папку с кодом проекта ~/web/proj и по-моему мнению у меня уже должно быть запущено виртуальное окружение

Не должно. Автоматическая активация виртуальных окружений реализована в хороших решениях, а не бесполезных поделках типа виртуалэнввраппера :-)

Как по мне, единственный плюс (хотя ещё как посмотреть, плюс ли это) виртуалэнввраппера — это то, что все виртуальные окружения хранятся в одной директории.

Я считаю гораздо более удобной модель, которую Вы по сути описали: когда виртуальное окружение лежит непосредственно в директории проекта, разумеется, под гитигнором. И при входе в директорию проекта окружение автоматически активируется. При выходе, соответственно, деактивируется. Тоже автоматически.

Пользуюсь этим подходом больше трёх лет, доволен как слон и искренне не понимаю тех, кто восторгается virtualenvwrapper'ом.
Ответ написан
sim3x
@sim3x
каждый раз после закрытия терминала нужно делать

workon proj-env

Расположение скрипта
locate virtualenvwrapper.sh
Ответ написан
Комментировать
@bromzh
Drugs-driven development
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Теперь при запуске терминала всё будет работать.
И ничего не надо экспортировать отдельно, ты должен 1 раз установить сам враппер, а потом каждый раз делать source. Это особенности баша, по другому не сделать. Строчки выше добавляют в файл, который запускается при старте терминала с башем инициализацию враппера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы