Выбираем среду разработки для Python
Писать на Python, применяя для этого IDLE либо Python Shell, достаточно удобно. Первый инструмент создан с помощью библиотеки Tkinter и представляет собой не только интегрированную среду разработки, но и средство обучения (Integrated Development and Learning Environment).
Что касается Python Shell, то этот инструмент тоже достаточно популярен и по сути мало чем отличается от обычного Python за исключением одной детали: выражения внутри grave accent символов (`) не являются eval, так как обозначают выполнение команды в шелле. К примеру:
`ls -l`
Здесь
`ls -l
А ещё есть возможность выполнять несколько команд одновременно на различных строках:
` echo test > test.txt cat test.txt `
Или выполнять команды, которые занимают несколько строк:
`echo This is \ a very long \ line
Всё это круто, но в нашей статье речь пойдёт не о Python Shell. А о том, что писать на IDLE или Python Shell удобно лишь в тех случаях, когда речь идёт о простых вещах. Но если размер проекта растёт, программирование превращается в мучение. И здесь не обойтись без хорошего редактора кода либо IDE.
Немножко теории
Как известно, IDE — интегрированная среда разработки и полноценная система программных средств, специально предназначенных для создания софта. Здесь есть и подсветка синтаксиса, и автодополнение, и инструменты для сборки, выполнения и отладки. Как правило, поддерживается несколько языков программирования.
Что касается редакторов кода — то это текстовые редакторы с подсветкой и возможностями форматирования. Однако хорошие редакторы могут выполнять код и имеют встроенный отладчик, а лучшие из них взаимодействуют с системами управления версиями.
Да, редактор имеет меньшую функциональность, чем IDE, зато он, как правило, легковеснее и быстрее.
После краткого лирического отступления давайте посмотрим, что сегодня доступно для тех, кто программирует на Python.
Редакторы для Python
1. Sublime Text
Sublime Text написан инженером из Google, который мечтал о лучшем текстовом редакторе. Популярный инструмент, доступный на всех платформах и поддерживающий редактирование Python-кода. При этом богатый набор пакетов расширяет возможности редактирования и синтаксиса.
Плюсы — большое комьюнити, хорошая поддержка, простота, быстрая скорость работы. Минусы — Sublime Text небесплатен, а установка расширений иногда превращается в тот ещё квест. Отладка и запуск кода не поддерживаются.
2. Atom
Этот доступный на всех платформах редактор написан с помощью фреймворка Electron и средствами HTML, CSS и JavaScript. Он имеет множество расширений, включая поддержку Python, устанавливаемую прямо в Atom.
Плюсы — быстро и легко скачивается, без проблем загружается, доступен на всех платформах. Минусы — функции сборки и отладки добавляются посредством расширений. Так как Atom написан с использованием Electron, он работает не как нативное приложение, а как JavaScript-процесс.
3. GNU Emacs
GNU Emacs имеет множество поклонников и существует почти так же долго, как и UNIX.
В той или иной форме доступен бесплатно на каждой платформе. Для кастомизации использует язык Lisp. Само собой разумеется, скрипты кастомизации найдутся и для Python.
Плюсы — очевидны для тех, кто знаком с Emacs, использует Emacs и любит Emacs. А также для тех, для кого Lisp — второй язык, и с ним вы способны почти на всё. Минусы — процесс кастомизации подразумевает написание Lisp-кода в разные скрипты. Если скопипастить нечего, то придётся изучать Lisp.
4. Vi/Vim
VI и VIM — это модальные редакторы, отделяющие просмотр файла от его редактирования. По умолчанию доступны на почти каждой UNIX-системе. В VIM есть всё, что и в VI, но добавлен ряд усовершенствований, например, доступны расширения. Для решения Python-задач используют VIMScripts.
Плюсы — очевидны для тех, кто знаком с VI, не боится VIMScripts и хорошо знает, как их подчинить своей воле. Минусы — по сути, такие же, как и в случае с Emacs: если вы не умеете писать скрипты или не хотите их искать, а также не в курсе, как работает модальный редактор, то VI не для вас.
5. Visual Studio Code
Visual Studio Code не стоит путать с Visual Studio, так как это полнофункциональный редактор, который доступен на Linux, Windows и Mac OS X. А ещё это расширяемый open-sourcе-инструмент, настраиваемый под любую задачу. Построен, как и Atom, на Electron и имеет, соответственно, те же плюсы и минусы.
Чтобы добавить поддержку Python, выполните поиск по запросу «Python» в Marketplace. Далее нужно нажать «Install» и сделать перезапуск, если потребуется. VS Code определит установленные библиотеки и интерпретатор Python автоматически.
Плюсы — доступность на всех платформах, большая функциональность, исходники есть в открытом доступе.
Минусы — работает не как нативное приложение, а как JavaScript-процесс. Кроме того, есть люди, которым пользоваться продуктами Microsoft не позволяет религия.
IDE, поддерживающие Python
1. Eclipse + PyDev
Вряд ли вы не слышали про Eclipse. Это open-source IDE, предназначенная для разработки на Java. Среда доступна на Linux, Windows и OS X.
Если нужна интерактивная консоль Python, используют расширение PyDev. Оно устанавливается очень просто: — запускаем Eclipse; — выбираем Help → Eclipse Marketplace; — находим PyDev; — нажимаем кнопку «Install».
Плюсы — возможность отладки и автодополнения кода, лёгкая установка. Если вы опытный пользователь среды разработки Eclipse — это ваш выбор. Минусы — для полноценного использования нужен опыт. Если вы новичок в Python, эта среда разработки может показаться достаточно сложной.
2. Visual Studio
Полнофункциональная IDE от Microsoft, во многом сопоставимая с Eclipse. Доступна на Windows и Mac OS, есть и в бесплатном, и в платном вариантах, имеет свой набор расширений. Одно из них — это Python-расширение под названием Python Tools for Visual Studio. Позволяет писать на Python и включает в себя отладку, автодополнение (IntelliSense), другие инструменты.
Плюсы — лёгкая установка PTVS, прекрасный выбор, если вы знакомы с Visual Studio. Минусы — для одного лишь Python среды разработки Visual Studio как-то многовато. Кроме того, нет версии для Linux.
IDE, разработанные специально для Python
1. PyCharm
Одна из лучших полнофункциональных сред разработки, сделанных конкретно для Python. Есть и бесплатный, и платный варианты. IDE доступна на Windows, Mac OS X, Linux.
PyCharm поддерживает Python-разработку напрямую — достаточно открыть новый файл и начать писать код. Есть возможность запускать и отлаживать код из PyCharm, присутствует поддержка системы управления версиями.
Плюсы — большое комьюнити, поддержка всего и вся, работа «из коробки», запуск, редактирование, отладка. Минусы — PyCharm может загружаться довольно медленно, а настройки по умолчанию обычно требуют корректировки.
2. Spyder
Open-source среда разработки для Python, оптимизированная под data science. Поставляется в наборе с менеджером пакетов Anaconda.
Основная целевая аудитория — data scientist’ы, использующие Python. Например, Spyder прекрасно работает с такими библиотеками, как SciPy, Matplotlib и NumPy.
А ещё инструмент обладает широкой функциональностью, которая присуща всем стандартным средам разработки: редактирование, подсветка синтаксиса, автодополнение кода и даже встроенный обозреватель документации.
Отличительная особенность — наличие проводника переменных. С его помощью можно увидеть значения переменных в виде таблицы непосредственно внутри IDE. Кроме того, прекрасно работает интеграция с IPython/Jupyter.
Про Spyder говорят, что это инструмент более «приземлённый», если сравнивать с другими IDE. Однако Spyder чаще рассматривают в качестве средства решения определённой задачи, а не в качестве основной среды разработки.
Плюсы — бесплатность, доступность на Windows, Linux, macOS. Если вы data scientist, использующий Anaconda, — это ваш выбор. Минусы — недостаточная функциональность для повседневной работы с точки зрения более опытных разработчиков.
3. Thonny
Среда разработки для новичков. Написана и поддерживается Институтом информатики Тартуского университета (Эстония). Доступна на всех основных платформах.
Tonny устанавливается с версией Python, которая идёт в комплекте, а значит, что-нибудь ещё устанавливать не потребуется. Но если вы продвинутый пользователь, можете эту настройку изменить, чтобы IDE нашла уже установленные библиотеки.
Плюсы — очевидны для начинающих Python-программистов, которые рвутся в бой и подбирают IDE. Минусы — недостаточно функциональности для продвинутых пользователей. Так как IDE достаточно новая, могут возникнуть проблемы, а ответы на вопросы вы вряд ли найдёте в сети.
Что же выбрать?
Решение, разумеется, за вами, но пару рекомендаций мы всё же дадим: 1. Вы начинающий питонист? Берите среду разработки с наименьшими возможностями кастомизации по принципу «Меньше препятствий — меньше проблем». 2. Вы уже использовали редакторы для решения каких-либо задач? Выбирайте редактор, вам будет проще. 3. У вас установлена IDE для другого языка? Просто добавьте в неё Python!
Материал написан специально для OTUS на основании статьи «Python IDEs and Code Editors (Guide)».