LSP-Pyright в Sublime Text не видит micromamba: как исправить
Настройка LSP-Pyright в Sublime Text 4200 для распознавания пакетов из micromamba-окружения (numpy и др.). Исправленный pyrightconfig.json с pythonPath, venvPath. Пошаговое руководство по фиксу ошибок импортов в sublime text python.
LSP-Pyright в Sublime Text 4200 не распознает окружение micromamba
В Sublime Text версии 4200 установлены плагины LSP, LSP-Pyright и LSP-Ruff. Всё работает хорошо (включая импорты внутри пакета — используются только абсолютные импорты). Однако LSP-Pyright выдаёт ошибки для “внешних пакетов”.
Предполагаем чистую ситуацию:
- Базовое окружение точно НЕ содержит пакет (например, numpy).
- Окружение micromamba (например, “web”) точно содержит этот пакет.
Проблема, вероятно, в настройках окружения и пакетов в файле pyrightconfig.json (на корневом уровне пакета).
Вот структура проекта (PyPI-стандартная):
Uqbar/
|
--- [много файлов]
--- pyrightconfig.json
--- src/
|
--- uqbar/
|
--- __init__.py
--- [исходный код]
Содержимое pyrightconfig.json:
{
"schema": "https://raw.githubusercontent.com/microsoft/pyright/refs/heads/main/packages/vscode-pyright/schemas/pyrightconfig.schema.json",
"include": ["src", "tests"],
"exclude": ["build", "dist", ".nox", ".venv", "docs/_build", "**/__pycache__"],
"typeCheckingMode": "strict",
"pythonVersion": "3.12",
"pythonPlatform": "Darwin",
"reportMissingImports": "error",
"reportMissingTypeStubs": "warning",
"reportUnusedImport": "warning",
"reportUnusedVariable": "warning",
"reportPossiblyUnboundVariable": "warning",
"venvPath": "/Users/egg/micromamba/envs",
"venv": "uqbar",
"executionEnvironments": [
{
"root": ".",
"extraPaths": ["src"]
}
]
}
Код запускается нормально. В чём ошибка в конфигурации Pyright для Sublime Text? Как правильно настроить LSP-Pyright для распознавания пакетов из micromamba-окружения?
LSP-Pyright в Sublime Text 4200 часто не распознаёт пакеты из micromamba-окружения вроде numpy, потому что игнорирует стандартные venvPath и venv без явного pythonPath. Добавьте в pyrightconfig.json строку “pythonPath”: “/Users/egg/micromamba/envs/uqbar/bin/python” — это принудительно укажет интерпретатор, и sublime text python сразу увидит внешние пакеты. После сохранения перезапустите LSP-Pyright через Command Palette (LSP: Restart), и ошибки импортов исчезнут, не трогая Ruff или запуск кода.
Содержание
- Проблема с LSP-Pyright в Sublime Text Python: не распознаются пакеты из micromamba
- Настройка pyrightconfig.json для pyright и sublime text python
- Исправление venvPath и venv для micromamba в LSP-Pyright
- Дополнительные настройки LSP-Pyright: pythonPath и executionEnvironments
- Как настроить sublime text для python с lsp pyright и Ruff
- Общие ошибки и pyright ignore в sublime text 4 python
- Тестирование и запуск: sublime text как запустить python с внешними пакетами
- Источники
- Заключение
Проблема с LSP-Pyright в Sublime Text Python: не распознаются пакеты из micromamba
Представьте: ваш код в Sublime Text 4200 летает, Ruff ругается только на стиль, а LSP-Pyright упорно краснит импорты numpy или других пакетов из micromamba-env. Почему? Потому что Pyright в sublime text python полагается на строгую иерархию поиска окружений: сначала pyrightconfig.json, потом LSP-настройки, и только в крайнем случае — автоопределение. Micromamba не активируется автоматически в GUI Sublime (без shell), вот и пакеты “не видны”.
В вашем случае структура проекта идеальна — src/uqbar по PyPI-стандарту, include/exclude настроены верно. Но “venvPath”: “/Users/egg/micromamba/envs” и “venv”: “uqbar” игнорируются. Это классика для conda-подобных менеджеров: LSP-pyright на GitHub прямо рекомендует добавить pythonPath для нестандартных envs. Без него Pyright шарит по дефолтным путям вроде ~/.pyenv или system Python 3.12 на Darwin, но micromamba там не светится.
А что с Ruff? Он работает, потому что lsp-ruff использует отдельный анализатор и часто подхватывает env из LSP или .python-version. Pyright строже — требует явных указаний. Проблема не в коде (абсолютные импорты рулят), а в конфиге.
Настройка pyrightconfig.json для pyright и sublime text python
Начнём с основ. В Sublime Text откройте Command Palette (Cmd+Shift+P) и введите “LSP-pyright: Create Pyright Configuration File”. Это сгенерирует шаблон pyrightconfig.json на корне проекта — именно там, где у вас Uqbar/pyrightconfig.json. Package Control для LSP-pyright подчёркивает: используйте Node.js >=14 и LSP-json для валидации, чтобы избежать синтаксических ошибок.
Ваш текущий config почти идеален: schema из microsoft-pyright, typeCheckingMode “strict”, платформа Darwin/Python 3.12. Но добавьте ключевой блок для micromamba. Вот полный исправленный pyrightconfig.json:
{
"schema": "https://raw.githubusercontent.com/microsoft/pyright/refs/heads/main/packages/vscode-pyright/schemas/pyrightconfig.schema.json",
"include": ["src", "tests"],
"exclude": ["build", "dist", ".nox", ".venv", "docs/_build", "**/__pycache__"],
"typeCheckingMode": "strict",
"pythonVersion": "3.12",
"pythonPlatform": "Darwin",
"reportMissingImports": "error",
"reportMissingTypeStubs": "warning",
"reportUnusedImport": "warning",
"reportUnusedVariable": "warning",
"reportPossiblyUnboundVariable": "warning",
"venvPath": "/Users/egg/micromamba/envs",
"venv": "uqbar",
"pythonPath": "/Users/egg/micromamba/envs/uqbar/bin/python",
"executionEnvironments": [
{
"root": ".",
"extraPaths": ["src"],
"pythonPath": "/Users/egg/micromamba/envs/uqbar/bin/python"
}
]
}
Сохраните. Pyright перечитает config при следующем открытии файла или рестарте LSP. Теперь sublime text python знает, где искать numpy.
Исправление venvPath и venv для micromamba в LSP-Pyright
Почему venvPath не срабатывает? В Sublime Text GUI micromamba-env не активируется, как в терминале (micromamba activate uqbar). LSP-Pyright ищет по “venvPath + venv”, но для Darwin/macOS нужен полный путь к бинарнику. Форум Sublime Text подтверждает: скопируйте блок инициализации из .zprofile (не .zshrc!) в настройки Sublime или просто добавьте pythonPath.
Проверьте путь: в терминале micromamba activate uqbar && which python — скопируйте вывод в pythonPath. Для вас это /Users/egg/micromamba/envs/uqbar/bin/python. Если env называется “web”, замените “uqbar” на “web”.
Дополнительно: в ~/.zprofile добавьте:
eval "$(micromamba shell hook --shell zsh)"
micromamba activate uqbar # или export MICROMAMBA_DEFAULT_ENV=web
Перезапустите Sublime. Теперь LSP-pyright подхватит env даже без config-фиксов, но pythonPath — надёжнее.
Дополнительные настройки LSP-Pyright: pythonPath и executionEnvironments
ExecutionEnvironments — ваш спаситель для multi-root проектов. В примере выше я добавил pythonPath внутрь него: Pyright применит его именно к корню “.” с extraPaths [“src”]. Это решает импорты внутри uqbar и внешние вроде numpy.
Из Pyright issues на GitHub: старая “venv_path” устарела, используйте venvPath. Для sublime text 4 python добавьте в LSP-settings (Preferences > Package Settings > LSP > Settings):
{
"clients": {
"pyright": {
"enabled": true,
"selector": "source.python",
"settings": {
"python.defaultInterpreterPath": "/Users/egg/micromamba/envs/uqbar/bin/python",
"python.analysis.autoSearchPaths": true
}
}
}
}
Это переопределит config для lsp pyright. Ruff оставьте как есть — он не конфликтует.
Как настроить sublime text для python с lsp pyright и Ruff
Sublime Text 4200 — зверь для Python-разработки. Установите LSP via Package Control, потом LSP-pyright и LSP-ruff. Для micromamba:
- Убедитесь в Node.js:
node --version>=14. - В терминале:
micromamba install ruff node. - Создайте pyrightconfig.json (см. выше).
- В Command Palette: LSP: Install Server > pyright (npm).
- Перезапустите Sublime.
Теперь lsp pyright анализирует типы, Ruff — линтинг. Импорты из src/uqbar работают благодаря extraPaths, внешние — pythonPath. Хотите автозапуск? Добавьте Build System с exec в env/bin/python.
Общие ошибки и pyright ignore в sublime text 4 python
Частые косяки:
- Нет pythonPath — Pyright юзает system Python без numpy.
- venv вместо VENV (case-sensitive).
- LSP не перезапущен: Cmd+Shift+P > LSP-pyright: Restart Server.
- Для игнора: в pyrightconfig.json
"reportMissingImports": "none"или// pyright: ignore[reportMissingImports]в коде.
Если Ruff жалуется — проверьте его config (pyproject.toml с [tool.ruff]). Micromamba-обновление? micromamba update --all.
Тестирование и запуск: sublime text как запустить python с внешними пакетами
Откройте src/uqbar/*.py, импортируйте import numpy as np. Красных подчёркиваний нет? Успех! Тест: Tools > Build > Python (укажите env/bin/python в .sublime-build).
Запуск: micromamba run -n uqbar python main.py. В Sublime — Terminus плагин для терминала внутри. Всё летает.
Источники
- LSP-pyright GitHub — Репозиторий с настройками LSP-Pyright для Sublime Text и venvPath: https://github.com/sublimelsp/LSP-pyright
- Sublime Forum — Обсуждение распознавания conda/micromamba в LSP-Pyright v2: https://forum.sublimetext.com/t/recognising-conda-environments-in-lsp-pyright-with-latest-lsp-v2/72027
- Package Control LSP-pyright — Инструкции по установке и созданию pyrightconfig.json: https://packagecontrol.io/packages/LSP-pyright
- Pyright GitHub Issue — Проблемы с venv в редакторах вроде Sublime Text: https://github.com/microsoft/pyright/issues/1204
Заключение
Добавление pythonPath в pyrightconfig.json и executionEnvironments мгновенно фиксит LSP-Pyright в sublime text python для micromamba — numpy и другие пакеты перестанут краснеть. Это стандартный приём для не-VSCode редакторов: явные пути рулят. Тестируйте рестартом LSP, и наслаждайтесь строгой типизацией без компромиссов. Если env меняется часто, автоматизируйте через скрипт — разработка станет ещё приятнее.
LSP-Pyright в Sublime Text не распознаёт micromamba-окружение, поскольку ищет venv в стандартных путях. Укажите в pyrightconfig.json:
"venvPath": "/Users/egg/micromamba/envs""venv": "uqbar"
Добавьте "python.pythonPath": "/Users/egg/micromamba/envs/uqbar/bin/python" для прямого указания интерпретатора. После перезапуска LSP-Pyright внешние пакеты вроде numpy будут видны без ошибок импортов в sublime text python.
LSP-Pyright в Sublime Text не всегда читает venvPath из pyrightconfig.json для conda/micromamba. Используйте "pythonPath": "/Users/egg/micromamba/envs/uqbar/bin/python" в начале файла. Sublime Text читает .zprofile, а не .zshrc для инициализации micromamba, скопируйте блок активации env. Это решает проблему с lsp pyright и внешними пакетами после обновления LSP v2.
Для настройки LSP-Pyright в sublime text python создайте pyrightconfig.json командой “LSP-pyright: Create Pyright Configuration File”. Укажите "venvPath": "/path/to/micromamba/envs", "venv": "uqbar" для micromamba. Автоопределение env из VIRTUAL_ENV работает частично; принудительно задайте python.pythonPath. Установите Node.js >=14 и LSP-json для валидации.
В Sublime Text 4 с LSP-Pyright conda/micromamba envs не распознаются импортами из-за устаревшего "venv_path" (используйте venvPath). Добавьте "extraPaths": ["src"] в executionEnvironments и укажите полный pythonPath к env/bin/python. Это стандартная ошибка pyright python в не-VSCode редакторах вроде sublime text python.