Создание виртуального окружения Python в Linux


В материале будет разобрано создание виртуального окружения python на сервере с Debian. Будем устанавливать Python 3.

Запуск проекта на Django, Flask и любого проекта на Python лучше всего выполнять с использованием виртуального окружения python.



Виртуальное окружение — изолированная среда со своими пакетами определенных версий устанавливаемых независимо от пакетов в самой системе.




Используется Python 3, если его в системе нет — пакет также устанавливается отдельно (как это делается разберем в заключительной части статьи). Сначала информация для случая когда Python3 есть в системе.




Создание виртуального окружения Python


Устанавливаем виртуальное окружение через pip

pip3 install virtualenv


или


python3 -m pip install virtualenv

/root/.local/bin/python3: No module named pip



Если возникает ошибка об отсутствии модуля — ставим его дополнительно

apt-get install python3-pip



Затем устанавливаем окружения задавая версию модуля, которую необходимо использовать

pip3 install virtualenv




Создаем каталог с проектом и переходим в него

mkdir DjangoProject && cd DjangoProject


Создаем виртуальное окружение python

virtualenv DjangoProject



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

source DjangoProject/bin/activate


Создание виртуального окружения python


Дальнейшие действия требуются только если Python3 на сервере нет.




Установка Python 3 на сервер и виртуальное окружение python3


В Debian 8 (дистрибутив выбран для демонстрации, отличий от современных версий в этом отношении нет) по умолчанию уже установлен Python, но версии 2. Он есть и в других дистрибутивах.



Проверить версию можно такой командой:

python -V

Python 2.7.9


Еще проверить есть ли пакет в системе можно следующим образом:

which python

/usr/bin/python


ls -la /usr/bin/python

lrwxrwxrwx 1 root root 9 мар 16 2015 /usr/bin/python -> python2.7


Видно, что символьная ссылка для python ведёт на версию 2.7. Это однозначно не говорит о том, что 3 версии в системе нет, но системная версия 2.7



Ещё версии установленных пакетов можно посмотреть с помощью пакетного менеджера, для Debian/Ubuntu это dpkg

dpkg python3


На скриншоте видно, что Python 3 в системе есть, если в выводе только пакеты версии 2, то нужно устанавливать Python 3.



Рассмотрим установку Python3


Прежде всего с официального сайта потребуется скачать свежую версию, в примере это Python-3.4.3.

wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz



Распаковываем архив.

tar xvzf Python-3.4.3.tgz



Переходим в каталог с файлами пакета и запускаем конфигуратор

cd Python-3.4.3

./configure --prefix=$HOME/.local



В процесс конфигурации может возникнуть сообщение об ошибке из которой следует, что отсутствует компилятор С:

configure: error: in `/root/Python-3.4.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details



Обновляем информацию о репозиториях

apt-get update



Устанавливаем компилятор С

apt-get install gcc



Компилируем и устанавливаем

make



Если возникает сообщение об ошибке следует установить и этот пакет

apt-get install make



make install



Компиляция может занять какое-то время.



Среди прочего будут установлены пакеты pip (используемый для инсталяции модулей Python) и setuptools (позволяющий собирать, устанавливать и удалять Python пакеты)



Открываем для редактирования файл .bash_profile в домашнем каталоге пользователя и добавляем строку с путем

mcedit ~/.bash_profile

# Python 3
export PATH="$HOME/.local/bin:$PATH"


Даем команду на считывание файла окружения пользователя (материал про переменные окружения)

source ~/.bash_profile


Проверяем версию установленного пакета

python3 -V

Python 3.4.3


Здесь указан python3, если версию не указать и выполнить python -V — будет выведена информация о пакете python2, потому что символьная ссылка на версию 2.7 продолжает существовать.

Если нужно заменить системную версию python, то достаточно поправить символьную ссылку.



Создание виртуального окружения python после установки Python3 выполняется так как описано в начале статьи.




Читайте про деплой приложения на python (фреймворк Flask)

Также читайте про gunicorn — сервер приложений, который позволяет быстро запускать сайты на Django

Сказать спасибо