О Python с Игорем Давыденко
Всякое разное о Python, раньше было про Django/Flask, сейчас больше про Fast Python и asyncio.
16 июля 2018 г.
Настройка Sublime Text 3 для Python разработки
Выбор редактора (среды для разработки), наверное, главное событие в жизни каждого разработчика. Я тоже поначалу не мог долго определиться какой редактор использовать, но потом, лет 8-9 назад установил Sublime Text и все — вопрос с редактором был закрыт раз и навсегда. Да, за эти года я иногда пробовал научиться работать в vim, но не смог, ну а на новомодные Atom, PyCharm или VS Code я вообще не смотрел. Поэтому я хотел бы рассказать про то, как я использую Sublime Text 3 и почему мне не нужен IDE в 2018 году.
Главная причина, почему мне не нужен IDE — это, конечно, база расширений для Саблайма, которая находится на packagecontrol.io и покрывает любой из языков, на которых я программирую. Так как блог о Python, то я расскажу только о расширениях для Python, но у меня также есть установленные плагины для JavaScript, flow, TypeScript, Elm и Rust.
В Python же все начинается с установки MagicPython от Юрия Селиванова, расширения, которое добавляет поддержку подсветки всех всех новомодных фич Python, и хоть авторы Sublime Text пытаются улучшать поддержку базового Python от релиза к релизу, нам это не нужно после установки и настройки MagicPython.
Дальше. Было бы неплохо иметь автодополнение для Python, да? Поэтому следующим делом, устанавливаем SublimeJEDI от Сережи Русских. Благодаря движку JEDI, который используется в IPython, к примеру, на выходе мы получаем автодополнение нашей мечты. Но для этого в настройках проекта нам нужно сделать две вещи,
- Задать путь к python_interpreter , в общем случае это «~/Projects//.venv/bin/python» , чтоб JEDI использовал все зависимости, установленные в проекте
- Настроить python_package_paths . Опять же в общем случае это [«~/Projects/»]
Все, теперь мы получили автодополнение к любому import стейтменту и много других фич, опять же благодаря движку JEDI.
Идем дальше. Линтинг. Тут нам нужны SublimeLinter-flake8 и SublimeLinter-contrib-mypy (а куда без type annotations в 2018 то году?). По дефолту, они будут пытаться использовать стандартный Python, установленный в системе, но так как в моем случае набор flake8 плагинов от проекта к проекту отличается, я задаю executable для этих линтеров в файле настройки проекта ( .sublime-project ) как,
- «SublimeLinter.linters.flake8.executable»: «~/Projects//.venv/bin/flake8» для настройки SublimeLinter-flake8
- «SublimeLinter.linters.mypy.executable»: «~/Projects//.venv/bin/mypy» для настройки SublimeLinter-contrib-mypy
Отдельно вы возможно захотите настроить сам SublimeLinter, но так или иначе про ошибки линтера мы узнаем куда быстрее и прямо в редакторе.
По большому счету с главными расширениями, которые превращают Sublime Text 3 в удобную среду разработки на Python мы закончили, но мне также хотелось бы упомянуть еще некоторые плагины, которые могут точно пригодиться,
- sublack — автоформатирование Python файлов при помощи black. Нужная вещь, когда вы работаете в команде и не хотите на код ревью тратить время о спорах насчет форматирования Python кода.
- editorconfig-sublimetext — также в 2018 году не зачем спорить о табах vs пробелах или отступах. Единократно кладем .editorconfig в корень проекта, а дальше Sublime Text 3 автоматически применяет необходимые настройки форматирования для любых файлов.
- DocBlockr — упрощает работу с комментариями в коде. Конечно, этот плагин больше применим для JavaScript кода, но и для Python иногда бывает полезен.
- GitGutter — просмотр того, как изменился блок кода, прямо в Sublime Text. Очень нужная вещь, для разработчиков, которые не любят бессмысленный закомментированный старый код.
- Terminus — и хоть я постоянно держу открытым Terminal.app иногда бывает удобно открыть терминал прямо в соседней вкладке Sublime Text.
Ну и напоследок чуть о внешнем виде. Все это время я использую схему подсветки кода Tomorrow-Night, так что очень был рад, когда настроил Boxy Theme для внешнего вида Sublime Text, используя это же цветовое решение. В итоге, мой Sublime Text выглядит следующим образом,
А вот шаблон настроек, который я использую для своих проектов,
< "folders": [ < "file_exclude_patterns": [ ".install*", "*.lock", "*-lock.json" ], "folder_exclude_patterns": [ ".*cache", "node_modules" ], "path": "/Users/playpauseandstop/Projects/" > ], "settings": < "python_interpreter": "/Users/playpauseandstop/Projects//.venv/bin/python", "python_package_paths": [ "/Users/playpauseandstop/Projects/" ], "SublimeLinter.linters.flake8.executable": "/Users/playpauseandstop/Projects//.venv/bin/flake8", "SublimeLinter.linters.mypy.executable": "/Users/playpauseandstop/Projects//.venv/bin/mypy" > >
Вот и получается, что Sublime Text 3 с таким набором расширений — это прекрасный редактор для программирования на Python.
Настройка Sublime Text 3 для Python разработки
Выбор редактора (среды для разработки), наверное, главное событие в жизни каждого разработчика. Я тоже поначалу не мог долго определиться какой редактор использовать, но потом, лет 8-9 назад установил Sublime Text и все — вопрос с редактором был закрыт раз и навсегда. Да, за эти года я иногда пробовал научиться работать в vim, но не смог, ну а на новомодные Atom, PyCharm или VS Code я вообще не смотрел. Поэтому я хотел бы рассказать про то, как я использую Sublime Text 3 и почему мне не нужен IDE в 2018 году.
Главная причина, почему мне не нужен IDE — это, конечно, база расширений для Саблайма, которая находится на packagecontrol.io и покрывает любой из языков, на которых я программирую. Так как блог о Python, то я расскажу только о расширениях для Python, но у меня также есть установленные плагины для JavaScript, flow, TypeScript, Elm и Rust.
В Python же все начинается с установки MagicPython от Юрия Селиванова, расширения, которое добавляет поддержку подсветки всех всех новомодных фич Python, и хоть авторы Sublime Text пытаются улучшать поддержку базового Python от релиза к релизу, нам это не нужно после установки и настройки MagicPython.
Дальше. Было бы неплохо иметь автодополнение для Python, да? Поэтому следующим делом, устанавливаем SublimeJEDI от Сережи Русских. Благодаря движку JEDI, который используется в IPython, к примеру, на выходе мы получаем автодополнение нашей мечты. Но для этого в настройках проекта нам нужно сделать две вещи,
- Задать путь к python_interpreter , в общем случае это «~/Projects//.venv/bin/python» , чтоб JEDI использовал все зависимости, установленные в проекте
- Настроить python_package_paths . Опять же в общем случае это [«~/Projects/»]
Все, теперь мы получили автодополнение к любому import стейтменту и много других фич, опять же благодаря движку JEDI.
Идем дальше. Линтинг. Тут нам нужны SublimeLinter-flake8 и SublimeLinter-contrib-mypy (а куда без type annotations в 2018 то году?). По дефолту, они будут пытаться использовать стандартный Python, установленный в системе, но так как в моем случае набор flake8 плагинов от проекта к проекту отличается, я задаю executable для этих линтеров в файле настройки проекта ( .sublime-project ) как,
- «SublimeLinter.linters.flake8.executable»: «~/Projects//.venv/bin/flake8» для настройки SublimeLinter-flake8
- «SublimeLinter.linters.mypy.executable»: «~/Projects//.venv/bin/mypy» для настройки SublimeLinter-contrib-mypy
Отдельно вы возможно захотите настроить сам SublimeLinter, но так или иначе про ошибки линтера мы узнаем куда быстрее и прямо в редакторе.
По большому счету с главными расширениями, которые превращают Sublime Text 3 в удобную среду разработки на Python мы закончили, но мне также хотелось бы упомянуть еще некоторые плагины, которые могут точно пригодиться,
- sublack — автоформатирование Python файлов при помощи black. Нужная вещь, когда вы работаете в команде и не хотите на код ревью тратить время о спорах насчет форматирования Python кода.
- editorconfig-sublimetext — также в 2018 году не зачем спорить о табах vs пробелах или отступах. Единократно кладем .editorconfig в корень проекта, а дальше Sublime Text 3 автоматически применяет необходимые настройки форматирования для любых файлов.
- DocBlockr — упрощает работу с комментариями в коде. Конечно, этот плагин больше применим для JavaScript кода, но и для Python иногда бывает полезен.
- GitGutter — просмотр того, как изменился блок кода, прямо в Sublime Text. Очень нужная вещь, для разработчиков, которые не любят бессмысленный закомментированный старый код.
- Terminus — и хоть я постоянно держу открытым Terminal.app иногда бывает удобно открыть терминал прямо в соседней вкладке Sublime Text.
Ну и напоследок чуть о внешнем виде. Все это время я использую схему подсветки кода Tomorrow-Night, так что очень был рад, когда настроил Boxy Theme для внешнего вида Sublime Text, используя это же цветовое решение. В итоге, мой Sublime Text выглядит следующим образом,

А вот шаблон настроек, который я использую для своих проектов,
< "folders": [ < "file_exclude_patterns": [ ".install*", "*.lock", "*-lock.json" ], "folder_exclude_patterns": [ ".*cache", "node_modules" ], "path": "/Users/playpauseandstop/Projects/" > ], "settings": < "python_interpreter": "/Users/playpauseandstop/Projects//.venv/bin/python", "python_package_paths": [ "/Users/playpauseandstop/Projects/" ], "SublimeLinter.linters.flake8.executable": "/Users/playpauseandstop/Projects//.venv/bin/flake8", "SublimeLinter.linters.mypy.executable": "/Users/playpauseandstop/Projects//.venv/bin/mypy" > >
Вот и получается, что Sublime Text 3 с таким набором расширений — это прекрасный редактор для программирования на Python.
Тонкая настройка «Sublime Text 3»
![]()
Раньше-то Eclipse был нашим всем, но на днях произошло неприятное: Eclipse падает всякий раз при копи/пэйст. Открыт соответствующий баг, решения пока нет, а между тем работать в Eclipse стало и решительно, и нерешительно невозможно. Вероятно, можно откатиться на более старые версии, но не факт, бо тогда и окружающие его пакеты тоже надо даунгрейдить, а это не тру.
Но под Linux есть много всяких IDE для разработки, даже есть почти нативное KDevelop. Из кроссплатформенных на слуху:
- PyCharm от JetBrains — выглядит адекватно, но от него завыли кулеры и памяти поуменьшилось изрядно, при этом проект внутри ещё не создан. Нет.
- Atom от GitHub, которое сегодня тоже от Microsoft. Построен на электроне, а это нет!
- VS Code (он же Visual Studio Code) от Microsoft. Нет.
- Sublime Text от кого-то из гугла (Джон Скиннер). Слово sublime переводится как «возвышенный, величественный, высокий, грандиозный».
Тут и остановимся.
В основе своей Sublime Text разочаровывающе примитивный и требуется время на его освоение и настройку, но это и хорошо. Можно подключать к простой основе только те расширения, которые понадобятся в работе, а это unix way. У него много документации (unix way!)? Он в принципе хочет каких-то денег (not a unix way!), но не настойчиво да и не особо много, поэтому всё норм.
1
Установка Sublime Text в Debian
Install the GPG key:
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
Ensure apt is set up to work with https sources:
sudo apt-get install apt-transport-https
Select the Stable channel to use:
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
Update apt sources and install Sublime Text
sudo apt-get update && sudo apt-get install sublime-text
1.1
Основная настройка Sublime Text
Для управления пакетами надо включить Package Control (инструкция):
- Tools > Install Package Control…
1.2
Расширение возможностей Sublime Text
- Tools > Command Palette… (Ctrl+Shift+P)
- Начать набор команды «install» > появятся подсказки > Выбрать «Package Control: Install package»
- начать набор названия пакета, который надо установить > появятся подсказки > выбрать нужный и даблклик или Enter.
- AdvancedNewFile
- Anaconda — autocomplete
- All Autocomplete
- AutoFileName
- Base16 Color Schemes — стили подсветки кода; мне очень зашло «base16-phd»
- BracketHighlighter
- DocBlockr
- Emmet — шаблоны для верстальщиков
- Git
- GitAutoCommit
- GitGutter
- Markdown Extended
- SideBarEnhancements — слева появляется сайдбар, там и отображаются файлы проекта (и вообще открытые), и появляются команды для управления файлами на ssd
- SublimeLinter — затем плагины для линтеров по определённым правилам для определённых языков
- Terminus — более продвинутая консолька
- по слову Theme можно выбрать иную тему оформления, нежели дефолтную Adaptive (кагбэ рейтинг тем). Для установки темы надо знать её точное название.
Restart Sublime Text.
1.3
каждого плагина Sublime Text по-отдельности займет некоторое время, но оно того стоит. Ковыряние в файлах настроек и прописывание инструкций приносит ощущение полного контроля и управления. Unix way же!
1.3.1
Пусть будет Adaptive.
Preferences > Customize Theme
Откроется два файла, один нередактируемый (общие настройки), второй редактируемый, бо сугубо пользовательский. Идея в том, что из общего можно копировать строки настроек в пользовательский файл и всё будет норм.
Иногда эти файлы открываются поодиночке.
Например, впишем это.
// Documentation at https://www.sublimetext.com/docs/themes.html < "variables": < "font_size_sm": 24, // размер шрифта вкладки "font_size": 20, // размер шрифта названия файла в Side bar "font_size_lg": 18, // размер шрифта группы файлов в Side bar >, >
В Anaconda встроен довольно строгий линтер, он считает неправильными почти все строки любого кода (и он, конечно, прав), помечая их белыми прямоугольниками. Эту функциональность лучше передать отдельному плагину, бо лучше использовать линтер под свой язык программирования и строго под выбранные юзером правила правописания, которые под тот же Python бывают очень разные. Поэтому
Preferences > Package Settings > Anaconda > Setting — User
Этот файл пуст, можно прописать там и отключение линтера анаконды, и путь к рабочей версии Python:
Позже можно будет использовать возможности Anaconda для автоформатирования кода по CTRL-ALT-R (насколько это, конечно, применимо к тому же питону) в соответствии с правилами PEP8. Там тоже надо настраивать точнее, бо по-умолчанию эта шняга заменяет табы четырьмя пробелами.
View > Indentation > Tab Width: 4 //эту настройку в будущем уже не трогаем
View > Indentation > Convert Indentations to Tabs
В правом нижнем углу окна отображается эта же настройка ‘Tab Size: 4’.
Левомышечный клик по ней открывает то же самое меню, что из View. Остаётся кликнуть по последней команде: Convert Indentations to Tabs. Можно использовать каждый раз после CTRL-ALT-R.
Надо пореже использовать CTRL-ALT-R и воспитывать в пальцах изначально принудительное правописание и отступы, в Python этот аспект важнее, чем в других ЯП.
Настройка хоткея для вызова Sidebar
Вызов или через View > Sidebar, или через последовательное нажатие «Ctrl+k, Ctrl+b».
Клавиши можно переназначить, например, на Ctrl+\: Preferences > Package Settings > Side Bar > Key Bindings — User
[ // Toggle the Sidebar , ]
1.3.4
Настройка консоли для запуска скриптов на Python
По-умолчанию дежурный запуск скриптов на Python делается во встроенной консольке через Ctrl+B. Годно, если надо просто что-то выполнить, и нет, если подразумевается интерактивность со стороны юзера.
Ctrl+Shift+P > Package Control: Install Package > Terminus
Затем сохранить в каталог с пакетами (/~/.config/sublime-text/Packages/User/) новый файл close_terminal.py — это плагин для тонкой обработки будущих окон терминала. В частности, он будет при каждом билде скрипта в разработке держать фокус на окне со скриптом и фокус только на одном окне терминала, чтобы не открывалось новое при каждом нажатии Ctrl+B.
Tools > Build System > New Build System (откроется пустой файл настроек)
< "target": "terminus_open", "auto_close": false, "title": "Pytnon Output", "cancel": "terminus_cancel_build", "pre_window_hooks": [ ["windows_focus", ], ["close_terminus_view_by_title", ], ["windows_focus", ], ], "post_window_hooks": [ ["carry_file_to_pane", ], ["windows_focus", ], ], "shell_cmd": "/usr/bin/python3 -u \"$file\"", "file_regex": "^[ ]*File \"(. *?)\", line ([0-9]*)", "selector": "source.python", "env": , "variants": [ < "name": "Syntax Check", "shell_cmd": "/usr/bin/python3 -m py_compile \"$\"", > ] >
Путь /usr/bin/python3 общий, тут можно задать любое направление к разным версиям, буде таковая необходимость соизволит явиться.
Под виндой, соответственно, в shell_cmd надо указать путь к python.exe, и делать это надо чуть заковыристо, через двойные косые: “shell_cmd”: “D:\\.python_venvs\\general_python\\Scripts\\python.exe -u \”$file\””.
Эти самые pre_window_hooks и post_window_hooks пришли из плагина close_terminal.py
Ctrl+S > дать новому файлу sublime-build имя вроде ’BuildPython3.sublime-build’ и убедиться в том, что он сохраняется в /~/.config/sublime-text/Packages/User/
Tools > Build System > выбрать ’BuildPython3‘
Больше эту настройку можно не трогать. Теперь общий хоткей Ctrl+B вызовет консоль Terminus справа от окна с кодом и в ней выполнит код по заветам прописанного интерпретатора Python.
Перевод фокуса с одной панели на другую с клавиатуры через Ctrl+1 и Ctrl+2 — если на экране две панели (их можно понаоткрывать бесчетно).
Поделиться:
- Послать ссылку другу по электронной почте (Открывается в новом окне)
- Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
- Нажмите, чтобы поделиться в Mastodon (Открывается в новом окне)
- Нажмите, чтобы поделиться в Telegram (Открывается в новом окне)
- Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне)
- Нажмите, чтобы открыть на Facebook (Открывается в новом окне)
Как в Sublime Text 3 запускать код Python-a?
Пишу код Python в Sublime Text 3, но чтобы проверить как программа работает, надо запускать программу через консоль.
Подскажите, как запускать python код через этот редактор.
Заранее спасибо!
- Вопрос задан более трёх лет назад
- 166308 просмотров
4 комментария
Средний 4 комментария
Возможно, не совсем по теме, но как Python-программист, советую, попробуйте PyCharm. Вы забудете про Саблайм очень быстро 😉
Алексей Мистин @Mistin Автор вопроса
Я пробовал PyCharm. Тяжёлая программа, мне не очень понравилась. хотелось бы просто редактор иметь)
Дмитрий @EvilsInterrupt
sintez: Не не не. ST сложно выпилить «из пальцев» 😉 Он как «вторая кожа» 😉 Проще VIM-ера уговорить пересесть на Visual Studio, чем юзера ST на PyChar )

Дмитрий: люто плюсую )))
Решения вопроса 1
Есть много вариантов, первый это ctrl + b, но он не поддерживает ввод. Поетому советую использовать SublimeRELP, установить его не так сложно, просто воспользуйтесь Package Control -> Install Package -> SublimeRELP. Теперь ви можете Tools -> SublimeRELP -> Python -> Run Current file. Но это поддерживает только Python2.7 и пользоваться не удобно. Для того что бы исправить это все открываем Preferences -> Key Bindings -> User и добавляем такое:
(в квадратние скобки).
Теперь при Ctrl + b все должно работать.
Ответ написан более трёх лет назад
Нравится 22 6 комментариев
выдаёт ошибку WindowsError(2, ‘\xcd\xe5 \xf3\xe4\xe0\xe5\xf2\xf1\xff \xed\xe0\xe9\xf2\xe8 \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xf4\xe0\xe9\xeb.’)
и у меня вылетает ошибка, о том что неожиданный символ запятая скобка или еще чего-то чего
vadimbordo @vadimbordo
Если у кого не работает. не забывайте обернуть в квадратные скобки
У меня всё заработало, когда я внес минимальные правки в строку:
«cmd»: [«python3», «-u», «$file_basename»],
«cwd»: «$file_path»,
изенил на:
«cmd»: [«python», «-i», «-u», «$file_basename»],
«cwd»: «$file_path»,

ivan_gorodetskii @ivan_gorodetskii
Спасибо, дай бог здоровья тебе! Не забывайте запятую поставить перед всей конструкцией, если у вас был код до этого, и главное общий код чтобы был в [ ]
Настройка Python на Sublime text3
Теперь проблема с Tools->SublimeREPL->Python->Python пишет не удается найти файл, через CTRL + B тоже пишет:
[WinError 2] Не удается найти указанный файл
Что делать? Как РЕПЛ настроить?
Отслеживать
47.8k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 28 янв 2019 в 9:01
45 1 1 серебряный знак 5 5 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
- Открываем Sublime Text -> Tools -> Build System -> New Build System
- Вставляем в открывшийся файл следующие строки, чтобы получилось вот так:
Если вам не требуется передавать через консоль в программу аргументы (например input()), то вы уже можете проверить работу создав и сохранив (без сохранения будет ошибка) тестовый файл, а затем нажав Ctrl+B. Снизу появится консоль с выводом результата.
Для проверки предлагаю выполнить следующий код:
import sys print(sys.version)
——Делаем интерактивную консоль——
- Заходим на сайт https://packagecontrol.io/installation и копируем содержимое бокса Sublime Text 3 в буфер обмена.
- Открываем Sublime Text -> View -> Show Console и вставляем содержимое буфера обмена, затем жмем Enter. Если у вас ничего не произошло, то выполните ручную установку описанную на сайте из пункта 5.
- Жмем Ctrl+Shift+P -> пишем Install Package -> пишем sublimeREPL и устанавливаем.
- Поскольку в sublimeREPL установлен python 2, то идем в Sublime Text -> Preferences -> Browse Packages
- Открываем в текстовом редакторе файл SublimeREPL -> config -> Python -> Main.sublime-menu
- Находим внутри этого файла столбик с аргументами children -> args -> cmd и меняем значение «python» на «python3». Сохраняем и закрываем файл.
- Открываем тестовый python-файл (например из пункта 4)
- Открываем консоль редактора как в пункте 6 и пишем sublime.log_commands(True)
- Sublime Text -> Tools -> sublimeREPL -> Python -> Python RUN current file и затем копируем из консоли строку repl_open целиком со всеми аргументами.
- В консоли пишем sublime.log_commands(False)
- Sublime Text -> Preferences -> Key Bindings. Забиндим хоткей для быстрого исполнения файла в интерактивной консоли REPL
- Вставьте в User-конфиг (он пустой) следующий код (ключ keys сделайте свой по желанию, в «сommand» пишите «repl_open», а в «args» закидываете все атрибуты которые скопировали из консоли. Их не обязательно так разбивать по строкам, можно все в одну оставить:
[ < "keys": ["ctrl+b"], "command": "repl_open", "args": , "external_id": "python", "syntax": "Packages/Python/Python.tmLanguage", "type": "subprocess"> >, ]
- Сохраняем файл, перезапускаем Sublime Text и используем заданный хоткей.
