Обзор: 6 Python IDE идут вразрез

Из всех показателей, которые вы можете использовать для оценки популярности и успеха языка, одним безошибочным фактором является количество доступных для него сред разработки. Рост популярности Python за последние несколько лет принес с собой сильную волну поддержки IDE с инструментами, предназначенными как для обычных программистов, так и для тех, кто использует Python для таких задач, как научная работа и аналитическое программирование.

Эти шесть IDE с поддержкой Python охватывают широкий спектр вариантов использования. Некоторые из них являются многоязычными IDE, которые имеют поддержку Python через надстройку или переупаковку другого продукта с расширениями, специфичными для Python. Каждый полезен для немного разной аудитории разработчиков Python, хотя многие стремятся быть полезными в качестве универсальных решений.

Сегодня значительное количество IDE - это фреймворки, оснащенные плагинами для определенных языков и задач, а не приложения, написанные изнутри для содействия разработке на данном языке. С этой целью ваш выбор IDE может зависеть от того, есть ли у вас опыт работы с другой IDE из того же семейства.

Видео по теме: Почему Python упрощает программирование

Для тех, у кого нет такого опыта, PyCharm - одно из лучших мест для начала. Он дружелюбен к новичкам, но не ограничен набором функций. Фактически, он обладает одними из самых полезных функций среди всех представленных здесь IDE. Многие из этих функций доступны только в платной версии продукта, но в бесплатной версии есть много, чтобы помочь начинающему разработчику начать работу.

LiClipse и Python Tools для Visual Studio (PTVS) - хороший выбор для разработчиков, уже хорошо знакомых с Eclipse и Microsoft Visual Studio соответственно. Обе являются полноценными средами разработки - настолько полно, насколько вы можете найти - которые довольно хорошо интегрируют Python. Тем не менее, они также являются обширными и сложными приложениями, которые сопряжены с большими когнитивными нагрузками. Если вы уже освоили любой из них, вы найдете его отличным выбором для работы с Python.

Воплощение Python для ActiveState Komodo IDE естественно для тех, кто уже использовал Komodo IDE для какого-либо другого языка, и он имеет уникальные функции (например, оценщик регулярных выражений), которые должны сделать его более привлекательным. Комодо заслуживает пристального внимания как новичков, так и экспертов.

Spyder лучше всего подходит для работы с IPython или другими инструментами для научных вычислений в таких дистрибутивах, как Anaconda, а не в качестве платформы разработки для Python в целом. Наконец, IDLE лучше всего зарезервировать для быстрых и грязных сценариев, и даже в этом отношении он может уступить место автономному редактору кода с плагином синтаксиса Python. Тем не менее, IDLE всегда рядом, когда вам это нужно.

IDLE

IDLE, среду разработки, входящую в состав почти каждой установки Python, можно считать IDE Python по умолчанию. Однако IDLE ни в коем случае не заменяет полноценную IDE; это больше похоже на модный редактор файлов. Тем не менее, IDLE остается одним из вариантов по умолчанию для разработчиков Python, чтобы освоить язык, и он постепенно улучшался с каждым выпуском Python, особенно с Python 3.5. (На этой странице можно найти интересное обсуждение недавних попыток улучшить IDLE.)

IDLE полностью построен из компонентов, которые поставляются с установленным по умолчанию Python. Помимо самого интерпретатора CPython, сюда входит набор инструментов интерфейса Tkinter. Одно из преимуществ построения IDLE таким образом: он работает на нескольких платформах с последовательным набором поведения. Как недостаток, интерфейс может быть ужасно медленным. Например, печать больших объемов текста из сценария в консоль на много порядков медленнее, чем если бы сценарий запускался непосредственно из командной строки.

IDLE имеет несколько непосредственных удобств. Он поддерживает встроенный цикл чтения-оценки-печати (REPL) или интерактивную консоль для Python. Фактически, эта интерактивная оболочка - это первый элемент, представляемый пользователю при запуске IDLE, а не пустой редактор. IDLE также включает в себя несколько инструментов, имеющихся в других IDE, таких как предоставление предложений по ключевым словам или переменным при нажатии Ctrl-Пробел, и встроенный отладчик. Но реализации большинства этих функций примитивны по сравнению с другими IDE и скованы ограниченным набором компонентов пользовательского интерфейса Tkinter. И набор сторонних надстроек, доступных для IDLE (одним из таких проектов является IdleX), далеко не так богат, как в других IDE.

В общем, IDLE лучше всего подходит для двух сценариев. Первый - когда вы хотите собрать быстрый скрипт Python, и для этого вам нужна предварительно настроенная среда. Второй - для начинающих, только начинающих. Даже новичкам нужно будет быстро перейти к более надежному варианту.

Spyder

Spyder - это сокращение от «Научная среда разработки PYthon». Он предназначен для использования в качестве инструментария для научных вычислений с Python, и это отражается в наборе функций, упаковке и общем поведении IDE. Spyder имеет полезные функции для общей разработки на Python, но если вы не работаете в основном с IPython и пакетами для научных вычислений, вам, вероятно, будет лучше использовать другую среду IDE.

Самая главная причина не использовать Spyder в качестве среды разработки Python общего назначения - это не набор функций, а процесс настройки. Spyder не поставляется в виде отдельного исполняемого файла в отличие от таких продуктов, как Visual Studio или PyCharm. Вместо этого он устанавливается как пакет Python. Самый простой путь к Spyder - установить предустановленный дистрибутив Python, например Anaconda от Continuum Analytics.

1. Доступно как расширение, но поддерживает только проверку синтаксиса. 2. Доступен как надстройка Eclipse. 3. Доступен в коммерческой версии. 4. См. Инструкции по интеграции. 5. Использует системы контроля версий, установленные на хосте.
  IDLE Комодо LiClipse PyCharm PTVS Spyder
Поддержка Cython Нет Да (1) Нет Да (3) Нет Нет
Управление версиями Нет да да да да Да (5)
Графический отладчик Нет да да да да Нет
Поддержка IPython Нет Нет Нет да Да (4) да
Макросы Нет да Да (2) Да (2) да Нет
Несколько переводчиков Нет да да да да да
Рефакторинг Нет да да да да Нет
Интеграция с базой данных Нет да Да (2) Да (3) да Нет
HTML / CSS / JavaScript Нет да да да Да (3) Нет

Spyder включает IPython, который заменяет обычную консоль Python. Когда вы вводите команды в IPython, результаты можно просматривать в интерактивном режиме. Каждую команду можно рассматривать как «ячейку» или сегмент кода, выходные данные которого могут быть сохранены и сопоставлены.

Spyder дополняет это, интегрируя поведение ячеек в свой редактор кода. Если вы вставляете специально отформатированные комментарии в любой скрипт Python, вы можете разделить его на ячейки и выполнять эти ячейки в интерфейсе IPython в любом порядке. Таким образом, можно легко использовать Spyder для создания прототипов ячеек для последующего размещения в ноутбуке IPython.

Для отладки Spyder использует встроенный отладчик Python Pdb. Интерфейс командной строки для Pdb очень далек от более сложных графических отладчиков, имеющихся в PyCharm или LiClipse, хотя вы можете установить графический отладчик Winpdb в качестве дополнительной надстройки. К сожалению, вы не можете использовать Winpdb с Python 3, поскольку он имеет зависимости от пакетов, которые по-прежнему доступны только в Python 2 (в частности, wxPython). С этой целью большинство людей застрянет на Pdb.

Spyder также ограничен по сравнению с другими IDE в своей интеграции с системами контроля версий, такими как Git и Mercurial. Если вы работаете в инициализированном репозитории проекта, файлы в этом проекте будут отображать элементы контекстного меню, вызываемые щелчком правой кнопкой мыши для репозитория. При этом механизмы контроля версий не встроены непосредственно в Spyder; вам необходимо, чтобы соответствующее приложение управления версиями уже было установлено на системном уровне, а его исполняемые файлы доступны по системному пути. Spyder также не включает в себя инструменты для управления репозиториями в своем пользовательском интерфейсе. Эти недостатки не так уж и плохи, если вы уже привыкли управлять репозиториями самостоятельно, но они создают дополнительные препятствия, если вы этого не делаете.

Spyder действительно имеет полезные функции для общей разработки на Python. Что сразу бросилось в глаза, так это панель проводника переменных в интерфейсе Spyder. Когда вы вводите команды в IPython, любые созданные переменные регистрируются там и могут быть исследованы в интерактивном режиме. Еще один полезный инструмент - это средство удаления пользовательского модуля. Включите его, и интерпретатор Python перезагрузит все модули с нуля при выполнении сценария Python. Таким образом, любые изменения, внесенные в код модуля, могут быть применены к работающей программе без перезапуска всего приложения.

ActiveState Komodo IDE

Линия продуктов IDE ActiveState включает версии почти для всех основных языков. Подход компании к этому немного похож на то, как работает LiClipse: возьмите базовый продукт (в данном случае Komodo IDE) и снабдите его надстройками для разработки на Python.

Комодо лучше всего подходит тем, кто уже знаком с воплощениями Комодо для других языков. У людей с таким опытом за плечами не будет проблем с погружением в продукт Python. Если вы простужаетесь, стоит обратить внимание на некоторые особенности пользовательского интерфейса. Например, строка меню приложения по умолчанию не отображается; вам нужно щелкнуть меню гамбургера в правом верхнем углу или нажать клавишу Alt, чтобы отобразить его. Он предназначен для того, чтобы все было чисто и просто, но для некоторых может быть слишком минималистичным.

С другой стороны, некоторые варианты интерфейса сразу привлекают внимание. Мне особенно понравилась «миникарта», уменьшенный предварительный просмотр кода в редакторе, который позволяет сразу перейти к любой части редактируемого файла. LiClipse имеет аналогичную функцию, но с реализацией Komodo проще работать.

Большинство IDE Python снабжены подобными функциями проверки синтаксиса Python или линтинга кода. Komodo IDE имеет все это, но он также был разработан для поддержки версий 2 и 3 языка одновременно. Если вы хотите запустить оболочку Python, например, и у вас есть интерпретаторы для обеих версий Python, доступных в вашем системном пути, вы можете явно выбрать любую версию. Мне часто приходилось проводить быстрые тесты поведения данного оператора в Python 2 и Python 3 параллельно, и это удобный способ сделать это.

Komodo предоставляет вам возможность применить несколько конфигураций запуска или отладки для приложения, но это немного менее гибко, чем аналогичная функция в LiClipse. Когда вы запускаете приложение, вам предоставляется выбор профилей для применения в программе. Вы можете отключить средство выбора профиля и сразу перейти к запуску профиля, но отключение может быть выполнено только для всего приложения, а не для конкретного проекта. Я предпочитаю раскрывающееся меню панели инструментов LiClipse, из которого вы можете выбрать данный профиль или запустить последний использованный профиль одним щелчком мыши.

Одно действительно замечательное дополнение - это набор инструментов для регулярных выражений. Введите регулярное выражение на одной панели этого инструмента, предоставьте образец данных для применения на второй панели, а результаты появятся на третьей. Инструмент также поддерживает несколько разновидностей регулярных выражений, включая Python, и даже показывает результаты операций сопоставления, разделения и замены. Я все время борюсь с созданием рабочих регулярных выражений, поэтому этот инструмент - находка.

Еще одна полезная готовая функция - это каталог общих фрагментов кода для Python. Нажмите, например, на «прогулку», и редактор вставит шаблонный код для использования os.walkфункции Python для обхода каталогов, одной из функций, синтаксис и использование которой я никогда не могу вспомнить. Также включены другие языки. Например, если вам нужно вставить стандартный HTML-код в шаблон Django, который вы готовите, Komodo поможет вам.

Дистрибутив Python по умолчанию поставляется с поддержкой SQLite из коробки. Komodo IDE дополняет это, предоставляя встроенный проводник для баз данных SQLite. Это что-то вроде урезанной версии «рабочих мест» настольных приложений, предоставляемых для MySQL или Microsoft SQL Server. Интерфейс неуклюжий и непривлекательный, но он идеально подходит для быстрой и грязной проверки или выборочного редактирования базы данных. Он не предназначен для использования в качестве полноценной IDE базы данных.

В Komodo вы найдете множество других полезных функций, даже если они не предназначены специально для Python. Регистратор макросов позволяет вам записывать и воспроизводить общие действия, хотя, похоже, он не записывает некоторые типы действий, такие как выбор профиля приложения для использования при запуске приложения. Другая функция позволяет пользователям Komodo сотрудничать в режиме реального времени, хотя для доступа к сервису им нужно будет зарегистрировать учетные записи в ActiveState.

LiClipse 

Eclipse IDE часто критикуют как медленную и перегруженную, но ее широкая языковая поддержка и галерея надстроек для разработки делают ее мощным и ценным инструментом. Python поддерживается в Eclipse через надстройку PyDev. Если вы используете Eclipse только для разработки на Python, лучше всего взять LiClipse. (В этом обзоре я буду использовать LiClipse как сокращение для набора функций, предоставляемых LiClipse и PyDev вместе.)

LiClipse - это переупаковка Eclipse с PyDev вместе с множеством других компонентов Eclipse, предназначенных для улучшения взаимодействия с пользователем. При запуске LiClipse выглядит и ведет себя так же, как и обычная версия Eclipse, за исключением брендов и значков LiClipse, поэтому у опытных пользователей Eclipse не должно возникнуть особых проблем с настройкой рабочего пространства по своему вкусу. Если у вас нет опыта работы с Eclipse, вам понадобится некоторое время, чтобы узнать, как работает рабочая область Eclipse (этот аспект Eclipse регулярно критикуется). В этом смысле LiClipse лучше всего подходит для людей, которые уже знакомы с Eclipse, возможно, из-за работы с ним на другом языке.

Оценочная карта Возможность (30%) Производительность (10%) Легкость использования (20%) Документация (20%) Дополнения (20%) Общий балл (100%)
IDLE 3.5.1 6 7 8 7 5 6.5
Komodo IDE 10.1.1 8 8 7 8 8 7,8
LiClipse 3.1 9 7 7 8 9 8,2
PyCharm 2016.2.3 9 8 9 8 8 8,5
Spyder 3.0.0 7 7 7 7 6 6,8
Инструменты Python 2.2 для Visual Studio 2015 9 8 7 9 9 8,5