Настройка редактора Sublime Text для Python
Настройка Sublime Text для разработки на Python
Для эффективной работы с Python в Sublime Text требуется не только установка интерпретатора, но и правильная конфигурация редактора: подбор плагинов, настройка сборок, линтеров и отладчика. Ниже рассмотрены основные подходы, от наиболее универсального до специализированных решений.
Как создать универсальную среду для Python с помощью Package Control и Anaconda?
Самый надежный способ - установить менеджер пакетов Package Control и затем через него несколько ключевых плагинов.
- Установите Package Control: откройте консоль Ctrl+` и вставьте код с официального сайта (https://packagecontrol.io/installation).
- Через Ctrl+Shift+P выберите Package Control: Install Package и установите плагины:
- Anaconda - автодополнение, линтинг, навигация по коду.
- SublimeREPL - интерактивная консоль Python внутри редактора.
- Python IDE - улучшенное автодополнение и поддержка виртуальных окружений.
// Пример настроек Anaconda (Preferences > Package Settings > Anaconda > Settings – User)
{
"python_interpreter": "/usr/bin/python3",
"auto_formatting": true,
"pep8": true,
"anaconda_linting": true
}
Sublime text python (настройка sublime text для python)
После перезапуска Sublime Text будет доступно автодополнение, проверка синтаксиса и автоформатирование по PEP8.
Проблема: Плагин не видит установленные библиотеки или выдает ложные ошибки. Решение - указать правильный путь к интерпретатору Python (особенно в виртуальных окружениях) в настройках Anaconda.
Ошибка: "The 'anaconda_linter' plugin crashed" - чаще всего из-за несовместимости версий. Обновите Anaconda через Package Control или отключите линтинг, если он не нужен.
Цель использования: Быстрая настройка IDE-подобной среды с минимальными усилиями. Подходит для проектов любого размера, особенно для тех, кто привык к функционалу PyCharm, но хочет легковесный редактор.
Как настроить встроенную сборку Python для запуска скриптов?
Sublime Text имеет встроенную систему сборок (Build Systems). Для Python достаточно создать файл Python.sublime-build в папке Packages/User/.
{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8",
"env": {"PYTHONIOENCODING": "utf-8"},
"variants": [
{
"name": "Run in Terminal",
"shell_cmd": "gnome-terminal -e 'python3 -u \"$file\"'"
}
]
}
После сохранения файла выберите Tools > Build System > Python и запускайте код по Ctrl+B. Результат появится во встроенной консоли (нижняя панель).
Проблема: Кодировка вывода (например, русские символы в виде кракозябр). Решение - добавить поле "env": {"PYTHONIOENCODING": "utf-8"}. Если консоль все еще не показывает Unicode, установите плагин SublimeREPL.
Ошибка: "python3: not found" - интерпретатор не добавлен в PATH. Укажите полный путь в "cmd", например "/usr/bin/python3".
Случаи использования: Быстрый запуск отдельных файлов без тяжелых плагинов. Подходит для небольших скриптов и обучения.
Как добавить линтинг и автоформатирование через SublimeLinter и Flake8?
Для любителей чистого кода подойдет связка SublimeLinter + SublimeLinter-flake8.
- Установите через Package Control: SublimeLinter и SublimeLinter-flake8.
- Убедитесь, что в системе установлен flake8 (pip install flake8).
- Настройте SublimeLinter: Tools > SublimeLinter > Open User Settings.
{
"linters": {
"flake8": {
"@disable": false,
"args": ["--max-line-length=120"],
"excludes": []
}
},
"styles": {
"fill_error": true
}
}
Теперь при сохранении файла SublimeLinter будет подсвечивать нарушения PEP8 и ошибки. Для автоформатирования можно использовать плагин AutoPEP8 или Black.
Проблема: Линтер не запускается, если нет исполняемого flake8 в PATH. Проверьте установку: which flake8. В Windows добавьте папку Scripts из Python в PATH.
Ошибка: "SublimeLinter: ERROR: flake8 cannot locate a Python interpreter" - укажите путь к интерпретатору в настройках плагина.
Случаи использования: Разработка в команде с жесткими стандартами кодирования. Позволяет автоматически выявлять стилистические ошибки.
Как использовать Jupyter Notebook внутри Sublime Text через Hydrogen?
Плагин Hydrogen позволяет выполнять код Python в ячейках, аналогично Jupyter, но без веб-интерфейса.
- Установите Hydrogen через Package Control.
- Установите ядро Jupyter для Python: pip install jupyter.
- Откройте файл .py, выделите строку или блок кода и нажмите Ctrl+Enter - код выполнится, результат появится рядом.
# Пример кода с ячейками для Hydrogen
# %%
import pandas as pd
df = pd.DataFrame({'a': [1,2,3]})
print(df)
# %%
# Следующая ячейка
print(df.mean())
Проблема: Hydrogen не находит установленное ядро Jupyter. Решение - запустить jupyter kernelspec list и убедиться, что ядро для Python присутствует. Если нет, добавьте python -m ipykernel install --user.
Ошибка: Hydrogen зависает при запуске - возможно, не хватает ресурсов. Перезапустите Sublime Text или увеличьте таймаут в настройках плагина.
Случаи использования: Интерактивная работа с данными, прототипирование, обучение. Удобно для тех, кто привык к Jupyter, но предпочитает текстовый редактор.
Расширенные примеры настройки и использования
1. Файл сборки для виртуального окружения с автоматической активацией
Создайте virtualenv.sublime-build в папке User:
{
"cmd": ["bash", "-c", "source venv/bin/activate && python3 -u \"$file\""],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8",
"env": {"PYTHONIOENCODING": "utf-8"}
}
Результат: При нажатии Ctrl+B скрипт выполнится внутри указанного виртуального окружения. Если окружения нет, сборка выдаст ошибку.
[Error 2] The system cannot find the file specified (на Windows, если используете bash)
Для Windows замените bash на cmd и команду активации: source venv/scripts/activate && python -u "$file".
2. Пользовательские сниппеты для стандартных конструкций Python
Создайте сниппет через Tools > Developer > New Snippet...
<snippet>
<content><![CDATA[
def ${1:function_name}(${2:args}):
"""${3:Docstring}"""
${4:pass}
]]></content>
<tabTrigger>defw</tabTrigger>
<scope>source.python</scope>
<description>Function with docstring</description>
</snippet>
Сохраните как Python_function.sublime-snippet в папке Packages/User/. Теперь при вводе defw и нажатии Tab появится заготовка функции.
Результат: Более быстрая запись boilerplate-кода.
3. Горячие клавиши для запуска выделенного кода через SublimeREPL
Откройте Preferences > Key Bindings (User) и добавьте:
[{
"keys": ["ctrl+shift+e"],
"command": "repl_open",
"args": {
"type": "subprocess",
"encoding": "utf8",
"cmd": ["python3", "-i", "-u", "$file"],
"cwd": "$file_path",
"external_id": "python",
"view_id": "*REPL* [python]"
}
}]
Теперь по Ctrl+Shift+E откроется REPL-консоль с загруженным файлом. Связка с выделением кода (SublimeREPL уже имеет команду repl_transfer_current) позволяет выполнять куски.
4. Настройка отладчика через плагин SublimeText-Python-Debugger
Установите SublimeText-Python-Debugger через Package Control. Затем создайте файл .pdb_config.py в корне проекта:
import pdb
pdb.set_trace()
# Затем запустите отладку:
# Tools > Python Debugger > Launch
Для удобства добавьте горячую клавишу для установки breakpoint: "keys": ["f9"], "command": "python_debugger_toggle_breakpoint".
5. Интеграция с Git: подсветка изменений и быстрая навигация
Установите GitGutter и SideBarGit. GitGutter покажет изменения в gutteре слева, SideBarGit добавит контекстное меню в боковой панели.
# Настройка GitGutter (Preferences > Package Settings > GitGutter > Settings – User)
{
"non_blocking": true,
"show_untracked": false
}
Теперь при редактировании файла вы видите добавленные/удаленные строки. Для быстрой фиксации: Ctrl+Shift+P > Git: Commit.