Настройка Python в WSL на Windows
Зачем Python в WSL?
Если вы одновременно осваиваете Linux и новый язык, это может казаться сложным. WSL даёт доступ к Linux-инструментам в знакомой среде Windows. Вы получаете среду, близкую к реальным Unix-системам, где написанные кем-то скрипты чаще всего запускаются «как есть».
Python кроссплатформенный, но многие руководства и готовые скрипты ориентированы на Unix-подобную среду. Нативный порт Python для Windows существует, но поведение Windows может отличаться — это осложняет перенос скриптов с Windows на другие системы. WSL способствует «Unix-подходу» к разработке: пути, права, утилиты и поведение интерпретатора ближе к тому, что ожидают Linux-разработчики.
Важно: если ваша цель — Windows-специфичное приложение (интеграция с PowerShell, COM, Win32 API), нативный Python для Windows может быть удобнее. Для кроссплатформенных скриптов и сервисов WSL чаще предпочтительнее.
Установка и версия Python на WSL
Многие дистрибутивы, включая те, что работают в WSL, поставляют Python по умолчанию. Тем не менее, версия может отличаться: на современных системах нужен Python 3.
Проверить версию можно так:
python -VИли запустив интерпретатор напрямую. Если вывод показывает Python 2.x, доступны варианты:
- Явно вызывать python3:
python3- В Ubuntu/Debian установить пакет-переадресатор:
sudo apt install python-is-python3- Создать алиас (простой и без риска системных конфликтов):
alias python="python3"Поместите алиас в ваш файл запуска оболочки, например .bashrc или .zshrc, чтобы он применялся автоматически.
- Рискованная опция — создать символьную ссылку:
sudo ln -s /usr/bin/python /usr/bin/python3Это ненадёжно: обновления могут перезаписать ссылку и вернуть Python 2, что сломает системные скрипты. Рекомендация: избегайте глобальной замены, предпочитайте алиасы или пакет-обёртки.
Интерактивный интерпретатор в WSL
Чтобы быстро проверить идею или изучить синтаксис, запустите интерактивный интерпретатор:
- Введите
python3(илиpython, если настроили алиас). - Печатайте выражения и видьте результат сразу.
Пример классической команды вывода:
print("Hello, world!")Чтобы выйти из интерпретатора, нажмите Ctrl+D или выполните:
exit()Интерактивная сессия полезна для быстрой отладки, изучения новых библиотек и проверки поведения функций перед написанием полноценного скрипта.
Написание и запуск скриптов в WSL
Создание исполняемых скриптов в WSL похоже на обычную практику в Unix:
В начало файла добавьте shebang:
#!/usr/bin/env pythonЭта строка запускает Python там, где он установлен, что делает скрипт переносимым между системами.
Сделайте файл исполняемым:
chmod +x script.pyЗапустите скрипт из каталога:
./script.pyЕсли вы используете виртуальные окружения (рекомендуется), создайте их так:
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pipВиртуальные окружения изолируют зависимости проекта и предотвращают конфликт версий между проектами.
Быстрый набор команд (cheat sheet)
# Проверить версию
python -V
# Явно вызвать python3
python3
# Установить переадресатор в Ubuntu/Debian
sudo apt install python-is-python3
# Создать виртуальное окружение
python3 -m venv .venv
source .venv/bin/activate
# Сделать скрипт исполняемым
chmod +x script.py
./script.pyКраткое руководство по началу работы
- Установите WSL (WSL2 предпочтительнее для лучших файловых и сетевых возможностей).
- Установите выбранный дистрибутив (Ubuntu, Debian, openSUSE и т. п.).
- Обновите пакеты:
sudo apt update && sudo apt upgrade. - Убедитесь в наличии Python 3:
python3 -V. - Настройте алиас или пакет
python-is-python3, если хотите использовать командуpython. - Создайте виртуальное окружение для проекта.
- Пишите скрипты с shebang и проверяйте их в интерпретаторе.
Факт-бокс: ключевые понятия
- Python 3 — текущая ветка разработки Python.
- shebang (
#!/usr/bin/env python) делает скрипт переносимым. - Виртуальные окружения (
venv) изолируют зависимости. - Не создавайте глобальных символьных ссылок, если не уверены в последствиях.
Когда это может не подойти (контрпримеры)
- Если вам нужна глубокая интеграция с Windows-специфичными API (COM, WinRT), WSL — не лучший выбор. В таких случаях используйте нативный Python для Windows.
- При работе с высокопроизводительными I/O на файловой системе Windows (особенно при WSL1) могут появиться замедления — тестируйте производительность.
- Если проект требует точной конфигурации ядра Linux (модули, специфические устройства), может понадобиться полноценная VM или удалённый сервер.
Альтернативные подходы
- Нативный Python для Windows: удобен для Windows-ориентированных задач.
- Docker-контейнеры: дают изолированную и воспроизводимую среду, хороши для CI/CD.
- Удалённая виртуальная машина или VPS: полезно для тестирования на «настоящем» Linux.
Ментальные модели и эвристики
- «Работает в WSL — скорее всего, будет работать и на Linux»: WSL приближает поведение к Linux, но обязательно тестируйте на целевой системе.
- «Изолируй зависимости»: всегда используйте виртуальное окружение для каждого проекта.
- «Не ломай систему ради удобства»: предпочитайте алиасы и пользовательские настройки вместо глобальных изменений системных бинарников.
Руководства по ролям — чек-листы
Для начинающего программиста:
- Установить WSL и дистрибутив.
- Проверить
python3 -V. - Создать виртуальное окружение и попробовать
print("Hello").
Для веб-разработчика:
- Установить менеджеры зависимостей (pip, poetry) в виртуальном окружении.
- Настроить .env и запуск сервера разработки через WSL.
- Проверить взаимодействие с Windows-редактором (лучше хранить проект в файловой системе Linux).
Для дата-сайентиста:
- Использовать venv или conda в WSL (если поддерживается).
- Проверить установку библиотек с компилируемыми зависимостями (numpy, pandas).
- Оценить необходимость GPU: WSL2 поддерживает некоторые GPU-адаптации, но это отдельная тема.
Для системного администратора/DevOps:
- Автоматизировать установку через скрипты/анибил.
- Использовать Docker для воспроизводимости.
- Не менять системные бинарники без полного понимания последствий.
Критерии приёмки
- Команда
python3 -Vвозвращает ожидаемую версию Python 3. - Скрипт с shebang запускается через
./script.pyбез правки путей. - Виртуальное окружение активируется и в нём можно установить зависимости через pip.
- Код запускается одинаково в WSL и на Linux-хосте (минимальные отличия).
Совместимость и советы по миграции
- Файлы проекта: храните исходники в файловой системе Linux (например, в /home/…), а не в /mnt/c/…, чтобы избежать проблем с правами и производительностью.
- Путь к исполняемым файлам и разделители отличаются: используйте относительные пути и переменные окружения.
- Если вы используете редактор в Windows (VS Code), включите Remote - WSL расширение для работы с файлами на стороне Linux.
Важное: при работе с файлами между Windows и WSL внимательно относитесь к правам доступа и окончаниям строк (LF vs CRLF).
Безопасность и права
- Не давайте скриптам права
chmod +x, если вы не доверяете их содержимому. - Не создавайте глобальных символьных ссылок для замены системных бинарников.
- Контролируйте версии пакетов и проверяйте зависимости перед деплоем.
Краткое резюме
WSL — удобный и мощный способ писать Python на Windows в среде, близкой к Linux. Он упрощает работу с Unix-ориентированными туториалами и готовыми скриптами. Настройте Python 3, используйте виртуальные окружения и храните проекты в файловой системе Linux. Для Windows-специфичных задач остаётся нативный Python или другие инструменты; для контейнеризованных сценарииев — рассмотрите Docker.
Важно: тестируйте код на целевой среде и не меняйте системные бинарники без необходимости.
Подпись: начните с python3 -V, создайте виртуальное окружение и попробуйте print("Hello, world!") — это подтвердит готовность среды.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone