Полезный блог о django, python

инструкции, руководства для изучающих django, python

Начало работы с django 1.9 и python 3.5 под Ubuntu

Настройка виртуального окружения для разработки приложений на django

Виртуальное окружение

Если скопировать интерпретатор и модули в отдельную папку, а также поменять некоторые переменные среды, то можно получить некую обособленную от системной версию python, со своими модулями и пакетами. Это и будет виртуальное окружение. Виртуальное окружение очень удобно для разработки. Оно позволяет использовать те версии python, django и других модулей которые вы хотите, а не те что выбрали за вас создатели дистрибутивов. И в то же время вы не вмешиваетесь в системные версии пакетов от которых может зависить работа других приложений.

Стандартным методом для создания такого окружения до недавнего времени было использование стороннего модуля virtualenv. С выходом python 3.3 появилась поддержка виртуальных окружений в стандартной библиотеке, а именно модуль venv. Вот его использование мы и рассмотрим. В большинстве случаев предпочтительно использование последних стабильных версий приложений и модулей. На момент написания статьи это python 3.5 и django 1.9. В качестве дистрибутива используется ubuntu 14.04, но большинство рекомендаций будет работать и в других дистрибутивах linux.

Установка python 3.5

В моей системе основной является версия python 2.7

pavel@pavel-ubuntu1404:~$ python -V
Python 2.7.6

но также установлена версия 3.5

pavel@pavel-ubuntu1404:~$ python3.5 -V
Python 3.5.1

если у вас её нет - установите. Например, при помощи команды

pavel@pavel-ubuntu1404:~$ sudo apt-get install python3.5

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

pyvenv является стандартным модулем python и использовать его можно соответственно

pavel@pavel-ubuntu1404:~$ python3.5 -m venv <dir>

А можно использовать специальную утилиту, идущую в комплекте с python

pavel@pavel-ubuntu1404:~$ pyvenv-3.5 <dir>

если вы используете python3.4 в ubuntu, то столкнётесь с ошибкой

pavel@pavel-ubuntu1404:~/djprojects$ pyvenv-3.4 testvenv
Error: Command '['/home/pavel/djprojects/testvenv/bin/python3.4', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1

это известный баг в ubuntu, который, к счатью, легко избежать. Надо просто использовать опцию --without-pip, предотвращающую автоматическую установку pip.

pavel@pavel-ubuntu1404:~/djprojects$ pyvenv-3.4 --without-pip testvenv
pavel@pavel-ubuntu1404:~/djprojects$ ls testvenv/
bin  include  lib  pyvenv.cfg

активируем созданое окружение

pavel@pavel-ubuntu1404:~/djprojects$ cd testvenv/
pavel@pavel-ubuntu1404:~/djprojects/testvenv$ source bin/activate
(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv$

теперь python ссылается на локальную версию

(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv$ python -V
Python 3.4.0

Установка необходимых пакетов

Сначала установим pip(если вы пользовались опцией --without-pip)

(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv$ wget https://bootstrap.pypa.io/get-pip.py
(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv$ python get-pip.py

Теперь при помощи pip устанавливаем django

(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv$ pip install django

если вы планируете работать с изображениями в своём проекте, то необходимо установить библиотеку Pillow. Но для этого вам понадобится системный пакет python3.5-dev

(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv$ sudo apt-get install python3.5-dev
(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv$ pip install Pillow

Создание и настройка проекта django

Находясь в виртуальном окружении вызовем команду

(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv$ django-admin startproject myproject

Запустим девелоперский сервер

(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv$ cd myproject/
(testvenv) pavel@pavel-ubuntu1404:~/djprojects/testvenv/myproject$ python manage.py runserver

теперь откроем в браузере страницу 127.0.0.1:8000

В результате вы должны увидеть приветственное сообщение.

django welcome page printscreen

Готово! Можете приступать к разработке приложений. А если вы только начинаете изучение django могу порекомендовать официальный туториал для начинающих