Когда вы работаете над несколькими проектами одновременно, могут возникать конфликты версий используемых пакетов. Легко решить эту проблему помогает виртуальное окружение. Нам нужны два пакета virtualenv, virtualenvwrapper. Их установка обычно проводится через pip:
1 2 | pip install virtualenv pip install virtualenvwrapper |
Нужно выбрать или создать директорию где будут храниться сам окружения:
1 | mkdir ~/.virtualenvs |
Затем добавить следующие строки в файл ~/.bashrc:
1 2 | export WORKON_HOME=$HOME/.virtualenvs source /usr/bin/virtualenvwrapper.sh |
Теперь у нас в консоли доступны новые команды. Список команд есть здесь, перечислю наиболее используемые:
mkvirtualenv – создает новое окружение, после чего активирует его.
rmvirtualenv – удаляет окружение, перед этим нужно его деактивировать.
workon – используется для активации окружений, без параметров — выводит список доступных.
deactivate – деактивирует активное окружение. Применение workon к другому окружению, выполнит деактивацию текущего.
Для красоты и удобства можно создать алиас workoff по аналогии с workon. Для этого в файле ~/.bashrc добавить строку:
1 | alias workoff='deactivate' |
Немного поэкспериментируем. Создадим окружение test:
1 | mkvirtualenv test |
Установим в него Django:
1 | pip install Django==1.8 |
Проверим, появился ли фреймворк в списке пакетов окружения:
1 | pip list |
Django (1.8)
pip (7.1.2)
setuptools (18.2)
wheel (0.24.0)
Как видим, все хорошо. Деактивируем окружение:
1 | deactivate |
Или, если добавили алиас:
1 | workoff |
Теперь команды Django runserver или migrate и другие нужно выполнять предварительно активировав окружение test командой
1 | workon test |
В современных средах, например, разработки PyCharm в настройках проекта можно указать его окружение, это во многом упростит работу.