Подготовка окружения Django проекта
Многие задачи, с которыми вы столкнётесь, уже решены программистами, и их наработки доступны всем. Любой может включить в свой проект готовые модули, библиотеки или фреймворки. Эти наборы упаковывают в стандартизированные файлы, скачивание и установка таких файлов также стандартизированы и выполняются автоматически: программы-установщики знают, как с такими файлами обращаться. Такие стандартизованные «упаковки» называются package («пакет»), а программы-установщики — пакетные менеджеры.
В чём разница между библиотекой, модулем, фреймворком и пакетом?
- Модуль — это файл с кодом, подключаемый к нашему проекту. Обычно модуль отвечает за решение строго ограниченной задачи. Модули, которые занимаются какой-то одной темой, можно объединить в библиотеку. Например, библиотека для обработки картинок Pillow может работать со множеством форматов файлов. Исходный код Pillow разбит на множество модулей.
- Фреймворк — это более сложный вид библиотеки, набор готовых инструментов для решения распространённых задач. Если сравнивать программирование с производством, то без фреймворка вы сперва собираете станки, а затем на них начинаете выпуск продукции. А фреймворк поставляет вам готовые станки: подключай и работай. Но зачастую это чуть-чуть не те станки, какие бы вам хотелось.
- Пакет — это модуль, библиотека или даже фреймворк, упакованный по определённым правилам и подготовленный для того, чтобы программисты могли без проблем применить его в разработке.
Как только пакет опубликован, программисты всего мира принимаются использовать его. С этого момента начинается большая жизнь нового продукта.
Со временем в пакете обнаруживаются ошибки, у разработчиков возникают пожелания или предложения что-то исправить и расширить. В таких случаях авторы выпускают обновления пакетов, новые версии. Каждая новая версия обозначается уникальной строкой. Она обычно имеет вид «X.Y.Z», где X — главная (мажорная) версия, Y — номер обновления, Z — номер исправления. Но конкретные правила именования версий определяет автор пакета.
Подготовка git репозитория
Проект, над которым вы будете работать, станет частью вашего портфолио и будет доступен на сайте
github.com. Если у вас ещё нет учетной записи на этом сайте — создайте её.
Обратите внимание: учебный проект может стать заметной частью вашего профессионального портфолио. Придумайте своей учетной записи имя, которое будет хорошо смотреться в резюме специалиста.
Создайте новый репозиторий на
сайте GitHub. Заполните следующие поля:
- Repository name — имя репозитория, назовите его yatube.
- Description — описание проекта. Мы будем разрабатывать платформу для блогов, так что можно написать, например «Социальная сеть блогеров».
- Public/Private — тип репозитория: публичный или приватный. На время прохождения курса выберите приватный. По завершении проекта вы сможете самостоятельно поменять тип на «публичный».
- Initialize this repository with a README — создать файл README в репозитории. Включите эту опцию: в файле README можно дать описание проекта.
- Add .gitignore — добавить файл
.gitignore. Это обязательный пункт, выберите в списке пункт Python. - Add license — добавить лицензию. В лицензии вы устанавливаете права на свой проект. Мы рекомендуем указать лицензию BSD 3 или MIT: они предоставляют хороший баланс прав и ответственности.
После создания надо клонировать репозиторий локально.
Скопируйте его адрес:
Откройте окно терминала Git Bash и перейдите в рабочую директорию Dev — вы создали её в предыдущих уроках.
Проверьте, что указываете правильный адрес папки, в которой будут храниться ваши проекты.
Под Windows выполните в терминале такие команды:
Скопировать кодBASH
$ cd D:\Dev\
$ git clone git@github.com:username/yatube.git Yatube
Под macOS или Linux:
Скопировать кодBASH
$ cd ~/Dev/
$ git clone git@github.com:username/yatube.git Yatube
После выполнения этих команд в папке Dev появится директория Yatube с файлами LICENSE и README.md. Это и будет рабочая директория проекта.
Встроенный терминал в Visual Studio Code
Окно терминала можно запускать прямо в интерфейсе Visual Studio Code. Если у вас на компьютере установлено несколько терминалов — в VSC можно выбрать, в каком именно терминале вы хотите работать. Это особенно актуально для Windows.
Запустите терминал (меню «Терминал» / «Новый терминал»). Проверьте, какой терминал запущен. Нам нужен
bash.

Если вдруг у вас включен какой-то другой терминал (на Windows, скорее всего, включится powershell) — настройте автоматический запуск bash, именно в нём мы будем работать на протяжении всего курса.
В выпадающем окне выберите
Select default shell

В открывшейся панели выберите "Git Bash"

Готово. Теперь при запуске терминала будет автоматически запускаться Git Bash.
Все дальнейшие команды и примеры будут даны именно для Git Bash, запущенном в VSC.
В других терминалах какие-то команды могут не сработать, а если Git Bash запустить не в VSC, а в отдельном окне — ответы терминала могут отличаться от ожидаемых (но всё будет работать).
VSC позволяет запустить несколько терминалов одновременно: кнопка
+ в интерфейсе терминала откроет ещё одно окно, а через выпадающее меню можно переключаться между терминалами.

Создание виртуального окружения
Бывает, что программист работает сразу над несколькими проектами. Одному проекту нужна старая версия библиотеки, а для другого хочется установить версию посвежее. Каждому проекту нужен уникальный набор библиотек.
Для решения этой проблемы в мире Python были созданы «виртуальные окружения», определяющие место, где хранится определённый проект и его библиотеки. Это такие «изолированные территории», где для каждого проекта можно установить собственные правила. Теперь можно одновременно работать со множеством проектов, не переживая, что их зависимости будут мешать друг другу.
Сейчас мы создадим виртуальное окружение и поставим в него Django.
Запустите редактор Visual Studio Code и через меню «Файл» / «Открыть директорию» откройте папку Yatube. Запустите терминал в VSC, удостоверьтесь, что вы работаете из директории Yatube — и выполните команду:
Скопировать кодBASH
$ python -m venv venv
После выполнения этой команды в директории проекта появится папка venv (от virtual environment, «виртуальное окружение»), в которой хранятся служебные файлы виртуального окружения. Там же будут сохранены все зависимости проекта.
Запуск виртуального окружения проекта
Каждый раз перед началом работы с проектом нужно запускать виртуальное окружение. При активированном окружении проект будет работать внутри собственного «загончика», в котором ему будет доступна собственная версия Python и те зависимости, которые установлены именно для этого проекта.
В терминале убедитесь, что вы находитесь в корневой директории проекта и активируйте виртуальное окружение.
В Windows для запуска виртуального окружения выполните такую команду:
Скопировать кодBASH
$ source venv/Scripts/activate
В macOS или Linux виртуальное окружение запускается так:
Скопировать кодBASH
$ source venv/bin/activate
При работе с проектом эти команды будут вам нужны постоянно. Скопируйте в блокнотик, будет удобно.
В терминале появится уведомление о том, что вы работаете в виртуальном окружении: строка (venv) будет предварять все команды.
Скопировать кодBASH
(venv) $
(venv)
username@computer-name /directory-name (master)
$
Магия виртуального окружения работает таким образом, что пользователю нужно его однократно активировать — и с выбранным окружением будут связаны все команды.
Все дальнейшие команды в терминале надо выполнять с активированным виртуальным окружением. Команды будут выглядеть так: (venv) $ команда
Остановить работу виртуального окружения можно командой
Скопировать кодBASH
(venv) $ deactivate
Установка первого пакета
Установите через pip первый пакет в виртуальное окружение (перед выполнением команды убедитесь, что виртуальное окружение запущено и что вы работаете из корневой директории проекта)
Скопировать кодBASH
(venv) $ pip install Django==2.2
По этой команде запустится менеджер пакетов
pip, он обратится к индексу пакетов на
https://pypi.org/, найдет нужный пакет —
Django версии 2.2, прочитает список его зависимостей, скачает нужные пакеты и установит их в виртуальное окружение проекта.
Версия 2.2 имеет статус LTS (Long Term Support, «расширенная поддержка») и будет поддерживаться до апреля 2022 года. Django поддерживает обратную совместимость, поэтому не пугайтесь, когда выходит новая версия: все ваши проекты на прежних версиях Django будут нормально работать.
Настройка редактора
Остался последний шаг: настроить привязку Python к текущему проекту в редакторе. Зайдите в настройки VSC: File (или Code на macOS) > Preferences > Settings. Переключитесь на закладку Workspace. В строке поиска введите имя ключа конфигурации python.pythonPath и укажите значение:
- Для Windows
./venv/Scripts/python.exe или полный путь к python.exe, который расположен в папке venv/Scripts, должно получиться что-то типа: d:/Dev/Yatube/venv/Scripts/python.exe

- Для macOS и Linux
./venv/bin/python или полный путь к файлу python в директории venv

Готово! У вас установлено окружение для работы проектом Yatube.
При настройке других проектов смело повторяйте все шаги этого урока. Единственное отличие может быть при установке новых пакетов, если вы будете создавать новый проект без Django. Заново устанавливать редактор VSC тоже не потребуется.