Традиционно для создания виртуального окружения для Python используется модуль virtualenv. Но, начиная с версии Python 3.3, появилась возможность создания «легкого» виртуального окружения с помощью встроенного модуля pyvenv.
Официальная документация по модулю pyvenv.
1. Для начала можно проверить переменную $PATH, которая указывает, какие пути прописаны для запуска из командной оболочки:
$ echo $PATH /home/pavel/installed/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Согласно данной информации python установлен как в пакете Anaconda (/home/pavel/installed/anaconda3/bin), так и в системном варианте (/usr/bin).
По умолчанию (если просто набрать python
) запускается python3 из пакета Anaconda, а если я хочу получить доступ к системному python, нужно набрать: /usr/bin/python3
.
Если у вас не установлены никакие дополнительные пакеты, то для вызова системного python3 достаточно набрать в командной строке: python3
.
2. Если не установлена поддержка виртуального окружения, то есть система выдает при попытках создания (см. п.3) следующее сообщение:
The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.
Тогда нужно установить:
$ sudo apt install python3-venv
3. Далее переходим в выбранную папку, и создаем в ней поддержку виртуального окружения:
$ cd work/python $ /usr/bin/python3 -m venv myvenv
В результате в директории work/python будет создана папка myvenv с необходимым содержимым для поддержки виртуального окружения.
4. Активировать виртуальное окружение можно командой (из папки, где оно создано):
$ source myenv/bin/activate (myvenv) $
В результате в bash в начале командной строки появиться надпись (myvenv).
5. Для деактивации используется команда:
(myvenv) $ deactivate $
6. Можно убедится, что pip и python работают в контейнере:
(myvenv) $ which pip /home/pavel/work/python/myvenv/bin/pip (myvenv) $ which python /home/pavel/work/python/myvenv/bin/python (myvenv) $ python -V Python 3.5.2
7. Если виртуальное окружение создавалась для работы с Django, то далее нужно выполнить следующие команды:
(myvenv) $ pip install django # Устанавливаем Django (myvenv) $ pip freeze # Смотрим какие при этом зависимости установились Django==1.10.2 (myvenv) $ python django-admin.py startproject newproject # Создаем новый проект (myvenv) $ pip freeze > newproject/requirements.txt # Сохраняем зависимости
При подготовке статьи использовались следующие источники:
- http://antiskleroz.pp.ua/it/python_virtual_environment
- http://djbook.ru/forum/topic/3970/
- https://tutorial.djangogirls.org/ru/django_installation/
Любые замечания, пожелания и дополнения к статье пишите в комментариях.
Дополнительная информация (добавлена 21-03-2017).
Виртуальное окружение можно создавать и используя установленную Anaconda с помощью менеджера пакетов Conda. При этом есть возможность гибко выбирать, какую версию python нужно использовать.
Все доступные версии python можно проверить командой:
$ conda search python
Чтобы создать виртуальное окружение с именем venv и самым последним python из 3-й ветки, достаточно выполнить:
$ conda create --name venv python=3
Файлы окружения будут располагаться в папке envs внутри директории с Anaconda.
Активация и деактивация виртуального окружения производится с помощью следующих команд:
$ source activate venv $ source deactivate venv
Посмотреть все имеющиеся виртуальные окружения, созданные с помощью Conda можно командой:
$ conda info --envs
Информация взята по ссылке: https://conda.io/docs/py2or3.html
Если Anaconda не прописана в системном пути $PATH, то для запуска созданного Conda виртуального окружения может потребоваться набирать длинную команду, например:
$ source /home/pavel/installed/anaconda3/bin/activate venv
Это, конечно, неудобно. Кроме того, если запуск виртуального окружения нужен для работы с Jupyter Notebook, то проще сделать небольшой файлик со скриптом на bash в рабочей директории.
$ touch begin.sh $ sudo chmod +x begin.sh $ gedit begin.sh
Первая строчка создает файл. Вторая — присваивает ему атрибут «исполняемый». Третья — запускает редактор для внесения правок в файл. В редакторе добавляем и сохраняем следующий код:
#!/bin/bash source /home/pavel/installed/anaconda3/bin/activate venv cd workdir jupyter notebook
Из консоли такой файл запускается командой bash begin.sh
или ./begin.sh
. Можно его запускать двойным кликом левой клавишей мышки и из файлового менеджера Nautilus. Если этого не происходит, нужно перейти в раздел «Параметры» — «Поведение» и поставить галочку «Каждый раз спрашивать» в разделе «Исполняемые текстовые файлы».
Источник информации — http://forum.ubuntu.ru/index.php?topic=77841.0
Добавлено 29-03-2017:
Для дополнительного чтения и понимания сути виртуального окружения есть хорошая статья (и комментарии) — https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/. В ней дается вводная информация и базовые сведения по работе с pip и virtualenv.
Для удобства организации виртуальных окружений и быстрой работы с ними есть надстройка virtualenvwrapper.