Нет линукса нет проблем. Узнайте, как разрабатывать в Linux прямо из Windows!

В одном из моих предыдущих постов я продемонстрировал использование фреймворка Python под названием Celery. В учебнике использовалась служба базы данных особого типа под названием Redis. Однако Redis официально не поддерживается в Windows, что делает невозможным следование руководству для пользователей Windows. Я сам пользователь Windows, и это ОС, на которой я вырос. Несмотря на его недостатки, я не решаюсь перейти на систему на основе Unix, такую ​​как MacOS или Linux.

Но должен быть способ обеспечить надежный и последовательный рабочий процесс разработки на компьютере с Windows.

Так и есть, и это тема поста!

В этом посте мы разработаем программу Python в среде Linux на компьютере с Windows! Для его разработки мы будем использовать WSL и расширение VSCode: wsl-remote.

WSL

WSL означает подсистему Windows для Linux. По сути, WSL позволяет пользователям Windows запускать среду Linux на своих машинах. Поскольку это полная установка Linux, можно использовать такие команды Linux, как grep, ls и find.

WSL дает следующие преимущества:

  • Быстрее, чем традиционная виртуальная машина (VirtualBox)
  • Избегайте проблем с двойной загрузкой Linux
  • Избегайте проблем с загрузкой Linux с флешки
  • Полностью поддерживается VSCode через расширение

Установить WSL

WSL можно установить, запустив в терминале PowerShell следующее:

wsl --install

После установки вы можете найти Ubuntu в поиске Windows, чтобы запустить его. Ubuntu является установленной ОС по умолчанию. Терминал должен открыться, и он может запросить у вас начальную настройку. Просто следуйте подсказкам. Когда закончите, держите окно открытым.

Если у вас возникли проблемы или вы хотите следовать официальному руководству, вы можете перейти по этой ссылке Установить WSL | Майкрософт.

Установить расширение WSL-remote

Откройте VSCode и найдите remote - wsl на вкладке расширений.
Найдя расширение, установите его.

Расширение remote-wsl подключает VSCode к WSL. Это позволяет нам использовать VSCode, как если бы мы разрабатывали на компьютере с Linux. Это означает, что встроенный терминал в VSCode будет экземпляром оболочки bash😊. Это также означает, что магия IDE, такая как автозаполнение и линтинг, работает полностью, как и ожидалось, даже несмотря на то, что мы разрабатываем внутри WSL.

Теперь вы можете закрыть окно VSCode.

Давайте поглазеем!

В терминале Ubuntu создайте новый каталог, используя mkdir. Вы можете называть это как угодно. Я назову его wslremote. Так:

mkdir wslremote

Затем перейдите в каталог с помощью:

cd wslremote

После этого напишите code . (с точкой .), чтобы открыть каталог внутри VScode. Вы можете принять приглашение и доверять владельцам папки.

Вот и все!

Если вы посмотрите на нижний левый угол окна, то увидите, что VSCode подключен к WSL: Ubuntu.

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

Вы заметите, что мы подключены к Bashтерминалу внутри WSL:

Теперь мы можем использовать здесь команды Linux.
Используйте touch для создания файла Python с именем app.py.

Откройте файл из проводника в левой части окна VSCode.

Установите Python и выполните

Поскольку мы разрабатываем внутри WSL, которая является автономной средой Linux, Python по умолчанию не установлен. Таким образом, даже если на вашем компьютере с Windows установлен Python, вам придется установить его на установку Ubuntu. Вы можете установить Python и pip, вставив следующие команды в окно терминала Ubuntu:

sudo apt update
sudo apt install python3 python3-pip

Теперь вы можете запустить следующее во встроенном терминале в VSCode, чтобы проверить установку:

python3 --version
>> Python 3.8.10

Теперь мы можем написать простое приложение Hello World в файле app.py:

print("Hello, World!")

Теперь это можно выполнить внутри встроенного терминала:

python3 app.py
>> Hello, World!

Удаленные контейнеры и заключение

Пример в этом посте был довольно элементарным, но эта методология чрезвычайно полезна в случаях, когда используются платформы на основе Unix, такие как Redis.
Это также может оказаться полезным для оптимизации рабочих процессов в командах разработчиков. Особенно в ситуациях, когда одни используют Windows, а другие используют ОС на базе Unix.

Также существует расширение remote-container, позволяющее вести разработку непосредственно внутри контейнера Docker.

Хотя зачем вам это делать?

Нам нужно было установить Python в WSL, прежде чем мы смогли запустить программу. С помощью Docker мы можем указать, что Python будет установлен на этапе сборки контейнера. Таким образом, с расширением и соответствующими файлами Docker мы можем начать разработку и запуск программ без необходимости явно устанавливать пакеты Linux. Опять же, это улучшает и оптимизирует рабочие процессы.

Это все для этого поста.

Надеюсь, вы узнали что-то полезное!

Первоначально опубликовано на https:haseebkamal.com.