Что такое WSL?

Что такое WSL?


Python в Windows WSL: Обзор возможностей и настройка среды разработки

С развитием технологий разработчики все чаще сталкиваются с необходимостью работы в кроссплатформенных средах. Для пользователей Windows, которые хотят использовать Linux-инструменты без переустановки ОС, Microsoft предлагает Windows Subsystem for Linux (WSL). В этой статье мы рассмотрим, как эффективно работать с Python в WSL, какие преимущества это дает и как настроить среду для комфортной разработки.


Что такое WSL?

Windows Subsystem for Linux (WSL) — это слой совместимости, позволяющий запускать Linux-дистрибутивы (например, Ubuntu, Debian, Fedora) прямо в Windows. С выходом WSL 2 появилась полноценная виртуальная машина с ядром Linux, что обеспечивает высокую производительность и полную совместимость с Linux-приложениями. Это идеальное решение для:

  • Работы с инструментами, доступными только в Linux.
  • Тестирования кода в среде, близкой к продакшену.
  • Использования Docker и контейнеров.

Установка Python в WSL

  1. Установите WSL:

    • Откройте PowerShell от имени администратора и выполните:
      wsl --install
    • Перезагрузите компьютер и выберите дистрибутив из Microsoft Store (рекомендуется Ubuntu).
  2. Обновите пакеты:

    sudo apt update && sudo apt upgrade -y
  3. Установите Python:

    • Python 3 обычно предустановлен. Для установки менеджера пакетов и дополнительных инструментов:
      sudo apt install python3 python3-pip python3-venv -y
    • Для управления версиями Python используйте pyenv:
      curl https://pyenv.run | bash
      Добавьте пути в .bashrc или .zshrc и установите нужную версию Python.

Ключевые возможности Python в WSL

1. Интеграция с Windows

  • Доступ к файлам:
    Файлы Windows доступны в WSL через путь /mnt/c/ (для диска C:). Аналогично, файлы WSL можно открывать из проводника Windows по пути \\wsl$\<дистрибутив>.
  • Запуск Windows-программ:
    Из WSL можно вызывать exe-файлы (например, notepad.exe).

2. Инструменты разработки

  • VS Code + Remote WSL:
    Установите расширение Remote - WSL для работы с кодом в WSL прямо из Windows. Редактор автоматически подключается к WSL, используя Python-интерпретатор из Linux.
  • Jupyter Notebooks:
    Запускайте сервер Jupyter в WSL и открывайте блокноты в браузере Windows.
  • Виртуальные окружения:
    Создавайте изолированные среды через venv или virtualenv:
    python3 -m venv myenv
    source myenv/bin/activate
  • Docker:
    WSL 2 поддерживает Docker Desktop, что позволяет работать с контейнерами без нативной установки Linux.

3. Производительность и совместимость

  • Скорость:
    WSL 2 почти не уступает нативному Linux в задачах, связанных с CPU и памятью. Однако операции с файлами в /mnt/ могут быть медленнее.
  • Совместимость библиотек:
    Библиотеки, требующие специфических системных зависимостей (например, uvloop, pyzmq), работают без проблем. Это особенно важно для веб-разработки (Django, Flask) и Data Science (NumPy, Pandas).

4. Сетевые возможности

  • Доступ к портам:
    Серверы, запущенные в WSL (например, на localhost:8000), доступны из Windows.
  • SSH и Git:
    Настройте SSH-ключи в WSL для работы с GitHub/GitLab. Используйте git напрямую из терминала Linux.

Проблемы и решения

  • Ошибки путей:
    Избегайте редактирования файлов WSL через Windows-программы (может повредить метаданные). Используйте VS Code или редакторы внутри WSL.
  • Низкая скорость файловых операций:
    Храните проект в файловой системе WSL (например, в ~/projects), а не в /mnt/c/.
  • Ошибки совместимости:
    Если библиотека требует Windows-специфичных компонентов, запускайте код в родной среде Windows.

Пример: Запуск Django-сервера в WSL

  1. Создайте виртуальное окружение и установите Django:
    python3 -m venv django_env
    source django_env/bin/activate
    pip install django
  2. Создайте проект и запустите сервер:
    django-admin startproject mysite
    cd mysite
    python manage.py runserver
  3. Откройте http://localhost:8000 в браузере Windows.

Заключение

Использование Python в WSL объединяет преимущества Windows и Linux: вы получаете доступ к богатому набору Linux-инструментов, сохраняя привычный интерфейс ОС. Это отличный выбор для:

  • Разработчиков, работающих с Docker и микросервисами.
  • Data Scientist’ов, использующих библиотеки на основе C-расширений.
  • Веб-разработчиков, тестирующих приложения в Unix-среде.

Настройте WSL, попробуйте примеры из статьи — и вы оцените гибкость этого подхода!