Преглед: 6 IDE на Python отиват на тепиха

От всички показатели, които бихте могли да използвате, за да прецените популярността и успеха на даден език, един сигурен фактор е броят на средите за разработка, достъпни за него. Нарастването на популярността на Python през последните няколко години донесе със себе си силна вълна от IDE поддръжка с инструменти, насочени както към общия програмист, така и към тези, които използват Python за задачи като научна работа и аналитично програмиране.

Тези шест IDE с поддръжка на Python покриват обхвата на случаи на употреба. Някои са многоезични IDE, които имат поддръжка на Python чрез добавка или преопаковане на друг продукт с разширения, специфични за Python. Всеки от тях се възползва от малко по-различна аудитория на разработчика на Python, въпреки че мнозина се стремят да бъдат полезни като универсални решения.

Днес голям брой IDE са рамки, оборудвани с плъгини за конкретни езици и задачи, а не приложения, написани отвътре навън, за да насърчат развитието на даден език. За тази цел изборът ви на IDE може да се определи от това дали имате опит с друга IDE от същото семейство.

Свързано видео: Защо Python улеснява програмирането

За тези, които нямат такъв опит, PyCharm е едно от най-добрите места за започване. Той е приятелски настроен към новодошлите, но не е затруднен в набора от функции. Всъщност той предлага някои от най-полезните функции сред всички IDE, профилирани тук. Много от тези функции са достъпни само във версията на продукта срещу заплащане, но в безплатната версия има много неща, които да помогнат на млад разработчик да започне.

LiClipse и Python Tools for Visual Studio (PTVS) са добър избор за разработчици, които вече са запознати с Eclipse и Microsoft Visual Studio, съответно. И двете са пълноценни среди за разработка - толкова пълни, колкото ще намерите - които интегрират Python доста добре. Те обаче са и разтегнати, сложни приложения, които идват с много когнитивни разходи. Ако вече сте усвоили някоя от тях, ще намерите чудесен избор за работата на Python.

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

Spyder е най-подходящ за работа с IPython или други научно-изчислителни инструменти в дистрибуции като Anaconda, а не като платформа за разработка на Python като цяло. И накрая, IDLE е най-добре запазен за бързи и мръсни скриптове и дори при този брой може да отнеме задна седалка до самостоятелен редактор на код с приставка за синтаксис на Python. Въпреки това, IDLE винаги е там, когато имате нужда от него.

ПРАЗЕН

IDLE, средата за разработка, включена в повечето инсталации на Python, може да се счита за стандартна IDE на Python по подразбиране. IDLE обаче в никакъв случай не е заместител на пълноценна IDE; по-скоро е като изискан редактор на файлове. И все пак IDLE остава една от опциите по подразбиране за разработчиците на Python да се справят с езика и се подобрява постепенно с всяко издание на Python, особено с Python 3.5. (Вижте тази страница за интересно обсъждане на последните усилия за подобряване на ИДЛ.)

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

IDLE има няколко непосредствени удобства. Той разполага с вграден цикъл за четене-отпечатване (REPL) или интерактивна конзола за Python. Всъщност тази интерактивна обвивка е първият елемент, представен на потребителя при стартиране на IDLE, а не празен редактор. IDLE също така включва няколко инструмента, намерени в други IDE, като предоставяне на предложения за ключови думи или променливи, когато натиснете Ctrl-Space, и интегриран дебъгер. Но реализациите за повечето от тези функции са примитивни в сравнение с други IDE и са скрити от ограничения избор на компоненти на потребителския интерфейс на Tkinter. И колекцията от добавки на трети страни, достъпни за IDLE (един такъв проект е IdleX), не е толкова богата, колкото ще намерите при други IDE.

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

Spyder

Spyder е съкращение от „Scientific PYthon Development EnviRonment“. Предназначен е за използване като работна среда за научни изчисления с Python и това е отразено в набора от функции, опаковката и цялостното поведение на IDE. Spyder има полезни функции за обща разработка на Python, но освен ако не работите главно с IPython и научни изчислителни пакети, вероятно сте по-добре с различна IDE.

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

1. Предлага се като разширение, но поддържа само проверка на синтаксиса. 2. Предлага се като добавка Eclipse. 3. Предлага се в търговска версия. 4. Вижте инструкциите за интегриране. 5. Използва системи за контрол на версиите, инсталирани на хост.
  ПРАЗЕН Комодо 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, всички създадени променливи се регистрират там и могат да бъдат изследвани интерактивно. Друг полезен инструмент е User Module Deleter. Активирайте го и интерпретаторът на Python ще презареди всички модули от нулата, когато изпълнява скрипт на Python. По този начин всички промени, направени в кода на модула, могат да бъдат приложени към работеща програма, без да се налага да рестартирате цялото приложение.

IDE на ActiveState Komodo

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

Komodo е най-подходящ за тези, които вече са запознати с превъплъщенията на Komodo за други езици. Хората с такъв опит под коланите си няма да имат проблеми с гмуркането в продукта на Python. Ако идвате на студено, има някои странности на потребителския интерфейс, които си струва да се отбележат. Например лентата с менюта на приложението не е изложена по подразбиране; трябва да кликнете върху менюто на хамбургера горе вдясно или да докоснете клавиша Alt, за да го покажете. Той има за цел да поддържа нещата чисти и прости, но може да е твърде минималистичен за някои вкусове.

От друга страна, някои от възможностите за избор на интерфейс са веднага привлекателни. Особено ми хареса „минималната карта“, увеличен визуализационен преглед на кода в редактора, който ви позволява да прескочите с един поглед към която и да е част от файла, който редактирате. LiClipse има подобна функция, но с изпълнението на Komodo е по-лесно да се работи.

Повечето IDE на Python са оборудвани със специфична за Python проверка на синтаксиса или свързване на код. Komodo IDE има всичко това, но също така е проектиран да поддържа версии 2 и 3 на езика едновременно. Ако искате например да стартирате обвивка на Python и имате интерпретатори за двете версии на Python, налични във вашия системен път, можете изрично да изберете която и да е версия. Често ми се е налагало да провеждам бързи тестове на поведението на даден израз в Python 2 и Python 3 едно до друго и това е удобен начин да го направя.

Komodo ви предоставя опция за прилагане на конфигурации за многократно изпълнение или отстраняване на грешки за приложение, но е малко по-малко гъвкава от подобна функция в LiClipse. Когато стартирате приложение, имате избор на профили, които да приложите към програмата. Можете да деактивирате инструмента за избор на профили и да преминете направо към стартиране на профил, но деактивирането може да се извърши само на базата на приложение, а не за конкретен проект. Предпочитам падащото меню на лентата с инструменти на LiClipse, от което можете да изберете даден профил или да стартирате най-скоро използвания профил с едно щракване.

Едно наистина прекрасно включване е набор от инструменти за регулярен израз. Въведете регулярен израз в един прозорец на този инструмент, предоставете някои примерни данни, за да ги приложите във втори панел, а резултатите се показват в трети. Инструментът също така поддържа множество вкусове на регулярни изрази, включително Python, и дори ви показва резултатите от операции за съвпадение, разделяне и замяна. През цялото време се боря с изработването на работещи регулярни изрази, така че този инструмент е божи дар.

Друга полезна функция, която се предлага, е каталог с общи кодови фрагменти за Python. Щракнете върху „walk“, например, и редакторът вмъква кода на шаблона, за да използва os.walkфункцията на Python за прелистване на директории, една от функциите, чийто синтаксис и употреба никога не мога да си спомня. Включени са и други езици. Например, ако трябва да поставите HTML със стандартно издание в шаблон на Django, който готвите, Komodo ви е покрил.

Разпределението по подразбиране на Python се предлага с поддръжка за SQLite. Komodo IDE допълва това, като предоставя вграден изследовател за бази данни на SQLite. Това е нещо като съкратена версия на настолните приложения „workbench“, предоставени за 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%)
НЕАКТИВНО 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 Tools 2.2 за Visual Studio 2015 9 8 7 9 9 8.5