Windows 10 Ubuntu: запускаем Django приложение

На прошедшей конференции Build 2016 от Microsoft, стало известно, что грядущий релиз с обновлениями для Windows 10 принесёт нам массу новинок. Одной из killer фич будет присутствие нативной ОС Ubuntu внутри Windows 10. Уже сейчас участники программы Windows Insider могут получить ранний доступ к самому «горячему» функционалу.

Я в свою очередь подписался на ранние обновления и решил попробовать каково это пользоваться Ubuntu внутри Windows 10. 27 апреля 2016 году вышла новая сборка Windows Preview 14332. Именно данный релиз я поставил себе на компьютер. Как отмечает changelog от Microsoft, в новой версии была исправления проблема с подключением к сети Интернет, возникающая у многих пользователей, использующих Ubuntu под виндой.

В качестве теста я решил продемонстрировать запуск полноценного Django приложения внутри Ubuntu на Windows 10. Стоит отметить, что с виндой поставляется Ubuntu 14.04 LTS 64 бита.

Установка

Чтобы получить обновление с возможностью установки Linux, необходимо стать участником программы Windows Insider. Для активации данного режима необходимо в параметрах системы перейти в раздел «Центр обновлений Windows» и запустить «Дополнительные параметры». После успешной регистрации в качестве участника программы, необходимо установить максимальный уровень оперативной доставки новых обновлений (переместив ползунок в крайний правый ряд).

После успешных манипуляций с параметрами обновлений, переходите в раздел «Для разработчиков» всё в том же разделе с параметрами системы (Все параметры), и включаем «Режим разработчика». Мне потребовалась дополнительная перезагрузка системы, чтобы Windows начала скачивание новых обновлений по каналу Windows Insider, вам возможно этого делать не потребуется. Переходите к обновлениям и нажимайте на кнопку проверки новых обновлений.

Стоит отметить, что для успешной установки обновлений, необходимо отключить все сторонние приложения, взаимодействующие с MBR. Например, у меня стоял TrueCrypt, шифровавший жесткий диск. Из-за него обновление каждый раз завершалось с ошибкой, пришлось его отключить.

Настройка Ubuntu в Windows 10

После успешной загрузки и установки обновлений, необходимо будет активировать компонент под названием «Подсистема Windows для Linux«.

Нажимаем правой кнопкой мыши на меню пуск и выбираем «Программы и компоненты», в диалоговом окне выбираем «Включение или отключение компонентов Windows».

Windows компоненты

Далее устанавливаем галочку напротив пункта «Подсистема Windows для Linux (бета-версия)«.

Windows 10 Ubuntu

Потребуется перезагрузить Windows для того, чтобы новый функционал появился в системе.

После перезагрузки прямо в меню пуск необходимо набрать bash.exe:

Windows Ubuntu Bash

Сразу после клика запустится консольное приложение в котором будет предложено скачать и установить Ubuntu в Windows 10. Соглашаемся, напечатав в ответ «y».

Ubuntu bash внутри Windows 10

Запускаем Django приложение в Windows 10 Ubuntu

В принципе запуск любого web приложения на Python внутри Ubuntu на Windows 10 ничем не отличается от запуска на чистом Linux, здесь я лишь приведу команды, необходимые для запуска:

Устанавливаем самые последние обновления для системы:

$ sudo apt-get update
$ sudo apt-get upgrade

Ставим pip и virtualenv:

$ sudo apt-get install python-virtualenv

Настраиваем виртуальное окружение для питона:

$ mkdir ~/.envs/ && cd ~/.envs/ && virtualenv djwin10ubuntu

Устанавливаем Django внутрь нового виртуального окружения:

$ source ~/.envs/djwin10ubuntu/bin/activate && pip install Django

Создаём Django-проект и запускаем тестовый веб-сервер:

$ django-admin startproject ~/win10proj
$ cd ~/win10proj && python manage.py runserver

Если всё прошло как по маслу, то открыв браузер и набрав в нём адрес http://127.0.0.1:8000/ можно увидеть стандартное приветствие от Django о рабочем проекте.

Доступ к файлам ОС Windows можно получить через /mnt/.

Файловая система Ubuntu находится по адресу C:\Users\<USERNAME>\AppData\Local\lxss\rootfs\

Ubuntu FS

Заключение

С приходом Сатьи Наделлы во главу Microsoft, компания сильно изменилась в лучшую сторону, я думаю это заметили многие. Релиз Windows 10 это, пожалуй, первый успех в линейке ОС после выхода Windows 7. В своей повседневной работе я использую Windows 10 наряду с Vagrant и Virtualbox, до этого неоднократно пытался полностью пересесть на Linux, но всё тщетно. Linux могу лишь воспринимать в качестве серверной ОС. Приход поддержки Linux в Windows 10 улучшит экосистему для разработчиков, в частности веб-разработчиков, а также откроет возможность использовать огромное количество полезных утилит: ssh, sed, awk, gcc, wget, curl, vim, emacs и так далее.

К слову, финальный релиз новой Windows 10 намечен на лето 2016 года, к годовщине её выхода.

А что вы думаете по этому поводу?

P.S. Вот и вышло Windows 10 Anniversary Update, в этом обновлении доступна функция подсистемы Linux, но стоит предупредить, что для её работы необходимо установить «Режим разработчика», иначе bash.exe просто не запустится, 02.08.2016.

Полезные ссылки

  • Pingback: Поездка на PyCon US 2016 в Портленд — Персональный блог Адиля Хаштамова()

  • Alexander Ivanov

    Два дня назад убил последний Windows. На этот раз дома. Docker не хотел дружить с VBox4, а 5 не натягивался без бубна. На linux таких неприятностей нет.

  • Иван Иванов

    В чём смысл этой затеи? Проще поставить Linux и не парить себе мозги.

    • Десктоп линукс… Спасибо, не надо 🙂

  • Рустам Башаров

    Здравствуйте, прочитал вашу статью, повторил действия описанные Вами, но запустить приложение не удалось. Консоль выдает:

    System check identified no issues (0 silenced).
    October 14, 2016 — 07:04:40
    Django version 1.10.2, using settings ‘win10proj.settings’
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.
    [14/Oct/2016 07:04:44] «GET / HTTP/1.1» 200 1767
    [14/Oct/2016 07:04:44] «GET / HTTP/1.1» 200 1767
    [14/Oct/2016 07:05:05] «GET / HTTP/1.1» 200 1767
    [14/Oct/2016 07:08:58] «GET / HTTP/1.1» 200 1767
    [14/Oct/2016 07:08:58] «GET / HTTP/1.1» 200 1767

    Оброщяясь по заданному адресу, через браузер (Google Chrome, Version 53.0.2785.143 m (64-bit)), страница не грузится и выдает ошибку «This site can’t be reached». Использую Windows 10 Pro Insider Preview, версия 1607. Хочу узнать в чем может быть проблема. Спасибо.

    • Попробуйте другой порт. Также попробуйте запустить runserver 0.0.0.0:8000

      • Рустам Башаров

        Пробовал, не помогает, запускал python simplehttpserver, тоже провал, но используя Bottle получилось запустить, так же нормально работал и локальный сервер на Ruby. Что делать с Django теперь ума не приложу.

  • Vladislav Aleksandrovich

    Так можно рекурсию организовать: зайти в фс убунту по адресу C:UsersAppDataLocallxssrootfs
    , а затем выйти в мнт/виндовс)) И так до бесконечности)))

    • Vladislav Aleksandrovich

      У нативной бубунты только одно преимущество на десктопе — всякие пайчармы и пхпштормы просто летают на ней))

      • Пайчармы летают и на винде с SSD диском и нормальной оперативой =)