Что такое 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
-
Установите WSL:
- Откройте PowerShell от имени администратора и выполните:
wsl --install - Перезагрузите компьютер и выберите дистрибутив из Microsoft Store (рекомендуется Ubuntu).
- Откройте PowerShell от имени администратора и выполните:
-
Обновите пакеты:
sudo apt update && sudo apt upgrade -y -
Установите Python:
- Python 3 обычно предустановлен. Для установки менеджера пакетов и дополнительных инструментов:
sudo apt install python3 python3-pip python3-venv -y - Для управления версиями Python используйте
pyenv:
Добавьте пути вcurl https://pyenv.run | bash.bashrcили.zshrcи установите нужную версию Python.
- Python 3 обычно предустановлен. Для установки менеджера пакетов и дополнительных инструментов:
Ключевые возможности 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
- Создайте виртуальное окружение и установите Django:
python3 -m venv django_env source django_env/bin/activate pip install django - Создайте проект и запустите сервер:
django-admin startproject mysite cd mysite python manage.py runserver - Откройте
http://localhost:8000в браузере Windows.
Заключение
Использование Python в WSL объединяет преимущества Windows и Linux: вы получаете доступ к богатому набору Linux-инструментов, сохраняя привычный интерфейс ОС. Это отличный выбор для:
- Разработчиков, работающих с Docker и микросервисами.
- Data Scientist’ов, использующих библиотеки на основе C-расширений.
- Веб-разработчиков, тестирующих приложения в Unix-среде.
Настройте WSL, попробуйте примеры из статьи — и вы оцените гибкость этого подхода!