Python: три лучших открытых IDE. IDE, GUI-библиотеки и редакторы для Python

На Windows и Linux Ubuntu. Сегодня я хочу немного затронуть вопрос о выборе средств для разработки ПО на Python . Как оказалось, средств для этого довольно много, поэтому вопрос выбора какого-то конкретного инструмента является важным.

Давайте посмотрим, какие в настоящее время есть IDE и редакторы для разработки на Python, а также библиотеки, которые позволяют создавать полноценные GUI-приложения.

GUI для Python

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

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

Чтобы долго не искать, поскольку библиотек на самом деле очень много, я решил ограничить свой поиск:

  1. Мне необходима кроссплатформенная библиотека
  2. Проверенная и популярная (они обычно самые толковые; за этим обратился на айтишные форумы)

В итоге весь список библиотек сузился до 3-х:

  • WxPython
  • Tkinter

В итоге я выбрал PyQt . Не скажу, что долго выбирал, просто к PyQt как-то больше душа лежит (тем более ранее знакомился уже в линуксе с Qt Creator ). Кроме того, вопрос больше стоял даже в выборе между PyQt и WxPython (это WxWidgets), но многие как один говорили, что все зависит от поставленных задач и огромной разницы нет. Я решил, что начну с PyQt, но потом обязательно попробую и другие библиотеки, в том числе WxPython и Tkinter.

Поэтому в ближайшее время будем говорить о разработке на Python с интерфейсом, сделанным с помощью Qt (про установку библиотеки, подключение и создание компонент напишу в отдельном посте, чтобы не загромождать эту статью, но если есть вопрос, спрашивайте).

IDE для Python

Здесь уже советовать что-то конкретное проблематично, поскольку каждый выбирает удобный для себя инструмент. Хотя не сказать про гигантов среди данных средств не могу.

Все IDEшки можно посмотреть на офф. сайте . Среди лидеров можно выделить NetBeans, Komodo, IDLE (стандартная IDE), Eric, SPE и MonkeyStudio. Последняя, кстати, обладает возможностью проектирование интерфейса (встроенный QT Designer и PyQt) и написания кода в единой системе по типу RAD-системы (например, как MS Visual Studio или Embarcadero RAD Studio).

Я пока что для себя выбрал IDLE, поскольку для меня она является вполне удобной. Хотя в скоро времени, уверен, посмотрю в сторону MonkeyStudio, тем более она еще и кросс-платформенная. Но, к сожалению, не обновлялась с 2010 года. Посмотрим, возможно, в этом нет ничего страшного.


Резюмируя вышесказанное, выбирать IDE лучше среди самых популярных (они ведь не зря таковыми стали), т.е. среди следующих:

  • NetBeans
  • Komodo
  • MonkeyStudio

Редактор для Python

Редактор для Python, в принципе, может вам и не понадобиться, если вы определились с IDE. К примеру, я использую IDLE и необходимости в простом редакторе не вижу. Но если вам так будет проще и удобней работать, то список редакторов (для Windows, Linux и Mac) можете посмотреть .

Резюме

И так, подведем итог сегодняшнего небольшого поста.

Во-первых , в качестве GUI-библиотеки я советую использовать PyQt. В ближайшее время по разработке приложений с такими интерфейсами будут написаны интересные статьи.

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

В-третьих , редактор, на мой взгляд, для разработки на Python, в принципе, не нужен. Либо, если уж хотите редактор, то откажитесь от IDE.

А что используете вы для разработки на Python? Какие IDE, GUI-библиотеки и редакторы?

IDLE is Python’s Integrated Development and Learning Environment, то есть Среда Интегрированного Развития и Обучения языку Python, а попросту Среда Разработки.

Иногда IDLE преподносится как Integrated DeveL opment Environment, что проще в переводе и трактовке.

IDLE - это интегрированная среда разработки на языке Python, созданная с помощью библиотеки Tkinter . Официально - искажение IDE, но на самом деле названа в честь Эрика Айдла (англ. Eric Idle ) из Монти Пайтон.

Поставляется вместе с Python и благодаря использованию Tkinter может использоваться на многих платформах, среди которых Windows, Mac OS, Unix-подобные ОС.

Возможности

С помощью IDLE можно выполнять обычные для интегрированной среды задачи: просматривать, редактировать, запускать, отлаживать программы на Python. Редактор кода использует подсветку синтаксиса. IDLE предлагает дополнительные возможности для опытных пользователей, например, средство просмотра объектов.

Скрытый от большинства юмор названия IDLE, заключается в том, что перевод слова idle с английского таков:

idle прил.
1 холостой
(single)
idle running – холостой ход
2 праздный, досужий
(indolent, leisurely)
just idle curiosity – праздное любопытство
3 неработающий, нерабочий
(inoperative, non)
idle mode – нерабочий режим
4 пустой
(empty)
idle threat – пустая угроза
5 незанятый, неиспользуемый

Вот Вам и Пустышка!

Есть несколько способов запуска IDLE. Мне больше всего нравится такой способ: кликом левой кнопки мыши по значку Лупы запускаю Поиск Windows, ввожу всего лишь два символа id, получаю возможность выбора IDLE разных версий пакета Python, кликаю левой кнопкой мыши по нужной версии и попадаю в окно Python Shell выбранной версии IDLE.

Сразу запомните, что Копирование и Вставка по клавиатурным командам Ctrl+C и Ctrl+V в IDLE работают только в английском режиме клавиатуры.

Наглядно убедиться в эффективности языка Python можно таким образом: Help —> Turtle Demo —> Examples —> bytedesign —> START

В результате примерно за полсекунды будет нарисован сложный орнамент — скорость наверняка зависит от возможностей компьютера. Кнопка START при первом запуске может оказаться вне экрана — выручает сдвиг окна или разворот на весь экран.

Для общего развития представляю

1.5. Скрытые возможности IDLE

Поскольку в процессе изучения материала этой книги в качестве редактора мы будем использовать IDLE, рассмотрим некоторые возможности этой среды разработки.

Как Вы уже знаете, в окне Python Shell символы >>> означают приглашение ввести команду. После ввода команды нажимаем клавишу . На следующей строке сразу отобразится результат (при условии, что инструкция возвращает значение), а далее — приглашение для ввода новой команды.

При вводе многострочной команды после нажатия клавиши редактор автоматически вставит отступ и будет ожидать дальнейшего ввода. Чтобы сообщить редактору о конце ввода команды, необходимо дважды нажать клавишу .

>>> for n in range(1, 3):
‘ print(n)
1
2
>>>

В предыдущем разделе мы выводили строку «Привет, мир!» с помощью функции print (). В окне Python Shell это делать необязательно. Например, мы можем просто ввести строку и нажать клавишу для получения результата:

>>> «Привет, мир!»

‘ Привет, мир! ‘

Обратите внимание на то, что строки выводятся в апострофах. Этого не произойдет, если выводить строку с ПОМОЩЬЮ функции print () :

>>> рrint(«Привет, мир!»)

Привет, мир!

Учитывая возможность получить результат сразу после ввода команды, окно Python Shell можно использовать для изучения команд, а также в качестве многофункционального калькулятора.
Первые шаги Пример:

>>> 12 * 32 + 54 438

>>>
25
Результат вычисления последней инструкции сохраняется в переменной_ (одно подчеркивание). Это позволяет производить дальнейшие расчеты без ввода предыдущего результата. Вместо него достаточно ввести символ подчеркивания.

>>> 125 * 3 # Умножение

>>> _+ 50 #Сложение. Эквивалентно 375 + 50

>>> _/ 5 #Деление. Эквивалентно 425 / 5

При вводе команды можно воспользоваться комбинацией клавиш <Сtrl>+<Пробел>. В результате будет отображен список, из которого можно выбрать нужный идентификатор.

Если при открытом списке вводить буквы, то показываться будут идентификаторы, начинающиеся с этих букв. Выбирать идентификатор необходимо с помощью клавиш и <.J..>.

После выбора не следует нажимать клавишу , иначе это приведет к выполнению инструкции. Просто вводите инструкцию дальше, а список закроется.

Такой же список будет автоматически появляться (с некоторой задержкой) при обращении к атрибутам объекта или модуля после ввода точки.

Для автоматического завершения идентификатора после ввода первых букв можно воспользоваться комбинацией клавиш +.

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

При необходимости повторно выполнить ранее введенную инструкцию её приходится набирать заново. Можно, конечно, скопировать инструкцию, а затем вставить, но как Вы можете сами убедиться, в контекстном меню нет пунктов Сору (Копировать) и Paste (Вставить).

Они расположены в меню Edit. Постоянно выбирать пункты из этого меню очень неудобно. Одним из решений проблемы является использование комбинации клавиш быстрого доступа + (Копировать) и + (Вставить).

Комбинации стандартны для Windows, и Вы наверняка их уже использовали ранее. Но опять-таки, прежде чем скопировать инструкцию, её предварительно необходимо выделить.

Редактор IDLE избавляет нас от лишних действий и предоставляет комбинацию клавиш + для вставки первой введенной инструкции, а также комбинацию +

Для вставки последней инструкции.

Каждое последующее нажатие этих клавиш будет вставлять следующую (или предыдущую) инструкцию.

Для ещё более быстрого повторного ввода инструкции следует предварительно ввести её первые буквы. В этом случае перебираться будут только инструкции, начинающиеся с этих букв.

В первом примере этой цитаты пришлось ввести апостроф (одинарные кавычки) в начале второй строки, чтобы вставить пробелы для визуализации отступа. Не забудьте убрать апостроф, иначе Python IDLE выдаст ошибку и вынудит её исправить.

Лично мне консольный ввод команд не особо нравится: я предпочитаю открывать окна редактирования текстов программ и оттуда запускать программы.

Не вдаваясь в подробности, отмечу, что интерпретатор IDLE преобразует программу, написанную на языке Python, в так называемый байт-код, который хранится и используется по мере необходимости. При изменении программы вырабатывается новый байт-код.

Байт-код (байткод ; англ. bytecode , более общо - p-код , p-code от portable code ) - стандартное промежуточное представление, в которое может быть переведена компьютерная программа автоматическими средствами.

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

С технической точки зрения - байт-код представляет собой машинно-независимый код низкого уровня, генерируемый транслятором из исходного кода.

Многие современные языки программирования (особенно - интерпретируемые) используют байт-код для облегчения и ускорения работы интерпретатора. Трансляция в байт-код является методом, промежуточным по эффективности: между прямой интерпретацией и компиляцией в машинный код.

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

В качестве виртуальной машины обычно выступает интерпретатор соответствующего языка программирования (иногда дополненный JIT- или AOT-компилятором).

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

Тем не менее, большинство инструкций байт-кода обычно эквивалентны одной или нескольким командам ассемблера.

Байт-код называется так, потому что длина каждого кода операции традиционно составляет один байт: каждая инструкция, обычно, представляет собой одно-байтовый код операции (от «0» - до «255») - за которым могут следовать различные параметры (например: номер регистра или адрес в памяти).

Программа на байт-коде обычно выполняется интерпретатором байт-кода .

Преимущество байт-кода - в большей эффективности и портируемости (то есть: один и тот же байт-код может исполняться на разных платформах и архитектурах - для которых реализован интерпретатор).

Компьютеры знают лишь нули и единицы, они даже двойки не знают, а исполняют программы, написанные на машинных языках, оперирующих нулями и единицами.

Программа «Hello, world!» для процессора архитектуры x86 (ОС MS DOS, вывод при помощи BIOS прерывания int 10h) выглядит следующим образом (в шестнадцатеричном представлении):
BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21

Приглашаю всех высказываться в

Настоящая статья является дополнением к книге «Инструменты Linux для Windows-программистов» . Все примеры к тексту вы можете скачать в виде общего архива .

Интегрированные средства (среды) разработки (IDE) не являются критически необходимым компонентом программной разработки. В традициях UNIX вполне достаточным для ведения программной разработки считается использование текстового редактора, обладающего дополнительными развитыми свойствами, такими как цветовая разметка текста, функции контекстного поиска и замены... Удовлетворяющих таким требованиям редакторов в Linux великое множество, начиная с традиционных vim и Emacs , и до простого редактирования в mc по F4. Опыт использования показывает, что этих средств вполне достаточно вплоть до средних размеров проектов.

Но использование IDE часто позволяет более производительно вести отработку программного кода, оперативнее выполнять в связке цикл: редактирование кода — сборка проекта — отладка. Значительно возрастает роль IDE в разработке GUI приложений, потому как большинство IDE предполагают в своём составе визуальные построители графических экранов.

Под Linux доступно весьма много разных IDE, различной степени интегрированности. Их уже настолько много, что становится бессмысленным описывать все, или значительную их часть в деталях: использование тех или иных IDE становится, в значительной мере, вопросом субъективных предпочтений и привычек. Можно перечислить только несколько из , числа наиболее широко используемых IDE (и показан их внешний вид, чтобы их «различать в лицо»):

$ make clean

$ du -hs


  1. Eclipse IDE (Eclipse Integrated Development Environment, http://www.eclipse.org/) - одна из наиболее известных на сегодня сред, активно развивается с 2000г., сначала как проприетарный проект IBM, который затем был превращён в открытый проект. Отличительной особенностью является возможность динамических расширений (которые может подготовить и рядовой пользователь), за счёт этого наработаны плагины для поддержки десятков языков программирования, среди которых: Java, C/C++, PHP, Python и многих других, число которых постоянно прирастает из-за лёгкости работы с плагинами.

    Эта среда разработки представлена практически для всех операционных систем, за счёт того, что сама она полностью выполнена на Java. Но Eclipse IDE является мульти-платформенной средой не только в смысле множества операционных систем, где она может выполняться, но и множества аппаратных платформ , отличных от x86, для которых может вестись кросс-разработка: ARM, MIPS, PPS ... и даже микроконтроллеры, например, AVR. Помимо средств разработки, в Eclipse IDE включаются в виде плагинов программные эмуляторы других аппаратных платформ (например, Android ARM) для целей отладки. На основе Eclipse IDE сторонними разработчиками создано много других IDE, специализированных под конкретные применения, и это создаёт сложности в выборе конкретной модификации IDE.

    Eclipse IDE представлен в репозитариях практически любого дистрибутива Linux, откуда может быть установлен. Но проект развивается очень динамично, поэтому, возможно, есть смысл устанавливать наиболее свежую реализацию с сайта проекта.

    На рисунке показан возможный вид в Eclipse IDE минимального проекта, отрабатываемого под архитектуру ARM7:

$ file factorial

factorial: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped





$ ./idea.sh

OpenJDK Runtime Environment (IcedTea6 1.8.3) (fedora-43.1.8.3.fc12-i386)

OpenJDK Server VM (build 14.0-b16, mixed mode)

WARNING: You are launching IDE using OpenJDK Java runtime

...

NOTE: If you have both Sun JDK and OpenJDK installed

please validate either IDEA_JDK or JDK_HOME environment variable points to valid Sun JDK installation



$ wxglade

...



CCOPT = `wx-config --cxxflags`

LDOPT = `wx-config --libs`

app: app.cpp

G++ $(CCOPT) $(LDOPT) $< -o $@

    Далее мы можем открыть полученный проект для дальнейшей работы в уже рассмотренный ранее Geany... Тем самым устраняется нагромождение «под одной крышей» слишком интегрированных IDE: и генерации визуальных образов GUI, и отработка программного кода.

Это далеко не все IDE, активно применяемые в разработках в Linux. Из других некоторые стоило бы хотя бы просто назвать «по имени»:

  • Anjuta (http://www.anjuta.org/) - официальная интегрированная среда разработки проекта GNOME, для разработки на языках: C, C++, Vala, Java, JavaScript, Python. Особенно хорошо подходит для разработки GUI приложений.
  • QDevelop (http://code.google.com/p/qdevelop/) в связке с QtDesigner (http://trolltech.com) или Qt Creator (http://trolltech.com/developer/qt-creator) — представляют собой мощный комплекс для отработки графических приложений, базирующихся на библиотеке Qt. Qdevelop представляет собой облегчённую версию Kdevelop, хотя и построен на совершенно отличном коде. Развитие Qdevelop начато в 2006г.
  • HaiQ (http://groups.google.com/group/haiq/) — ещё одна много-платформенная IDE, ориентированная на разработку с использованием библиотек Qt.

Эти, а также и другие IDE вы легко найдёте и установите в своей системе под свой вкус, пользуясь техникой установки программного обеспечения, описываемой далее. Вряд ли этот предмет стоит большего внимания.

На данный момент python имеет две ветки 2 и 3, которые полноценно развиваются и улучшаются. Но прогресс берет свое и python3 все больше вытесняет вторую версию. Мы же не станем противится данной тенденции и пойдем в ногу со временем.
Честно говоря в новой версии питона больших синтаксических изменений нет, так что особой болезненной реакции и культурного шока от написания кода на у вас не будет. К тому же, я бы сказал, что разработчики языка довольно удачно оптимизировали некоторые вещи, а так же добавили интересные и приятные плюхи. Но о всем по порядку.
Итак, в последнее время я вынужден сидеть на винде, поэтому стараюсь оптимизировать и перетащить все привычные инструменты с пингвина на форточки. И чтобы вы не заморачивались как я, мною было принято решение рассказать весь процесс настройки осей под работу с новым питоном.

Приступим. Начнем с Windows.
Скачиваем python (на данный момент 3.5.1) тут https://www.python.org/downloads/
Скачиваем Geany (на данный момент 1.27) тут http://www.geany.org/Download/Releases
Скачиваем PyCharm Community (на данный момент 2016.1.2) http://www.jetbrains.com/pycharm/download/#section=windows

Устанавливаем python 3 на windows:



Отмечаем галочку Add Python 3.5 to PATH. Выбираем Customize installation. Далее отмечаем все галочки и по желанию изменяем место установки.



Ожидаем окончания установки:





Теперь в Пуск-> Все программы -> Python 3.5 есть консоль для работы с питон IDLE (Python 3.5 32-bit). Нам нужна полноценная среда разработки с удобным текстовым редактором и встроенным интерпретатором. Для начала установим geany (я думаю вы с этим справитесь самостоятельно), затем на рабочем столе (или где вам удобно) создадим новую папку с любым названием, а в ней файл с расширение.py, допусти hello.py и впишем в него такой код:

Print("Приветствую тебя, юный падаван!") name = input("Назови себя! \n") print("Теперь, "+name+", ты узрел всю мощ pythonа")

Сохраним, закроем. И снова откроем с помощью Geany. Теперь нам нужно выполнить данный код, для этого жмем на верхней панели на картинку с шестеренками «Выполнить». После чего запустится консоль с выполненной программой.


Geany — вообще замечательный инструмент. Я уже писал о ней в статье .

А теперь попробуем PyCharm Community. Это еще более удобная IDE для программирования на python 3. Устанавливаем ее и открываем наш файл hello.py просто кликнув по нему дважды, так как PyCharm должен ассоциировать все файлы python.
Активируем Python Консоль:


Затем в верхнем меню находи Run и выбираем Run и в появившемся окошке выбираем Run hello:


Сегодня мы напишем свою первую программу в среде разработки IDLE.

С интерактивным режимом мы немного познакомились, можете с ним ещё поиграться, например, написать

print (3 + 4 ) print (3 * 5 ) print (3 ** 2 )

Но, всё-таки, интерактивный режим не будет являться основным. В основном, вы будете сохранять программный код в файл и запускать уже файл.

Для того, чтобы создать новое окно, в интерактивном режиме IDLE выберите File → New File (или нажмите Ctrl + N).


В открывшемся окне введите следующий код:

name = input ("Как Вас зовут? " ) print ("Привет," , name )

Первая строка печатает вопрос ("Как Вас зовут? "), ожидает, пока вы не напечатаете что-нибудь и не нажмёте Enter и сохраняет введённое значение в переменной name.

Во второй строке мы используем функцию print для вывода текста на экран, в данном случае для вывода "Привет, " и того, что хранится в переменной "name".

Теперь нажмём F5 (или выберем в меню IDLE Run → Run Module) и убедимся, что то, что мы написали, работает. Перед запуском IDLE предложит нам сохранить файл. Сохраним туда, куда вам будет удобно, после чего программа запустится.

Вы должны увидеть что-то наподобие этого (на скриншоте слева - файл с написанной вами программой, справа - результат её работы):


Поздравляю! Вы научились писать простейшие программы, а также познакомились со средой разработки IDLE. Теперь можно немного отдохнуть, а потом начать изучать python дальше. Можете посмотреть , или . Желаю удачи!



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: