Писать на Python, используя IDLE или Python Shell, вполне удобно, если речь идёт о простых вещах, однако с ростом размеров проектов программирование превращается в мучение. С помощью IDE или даже хорошего редактора кода можно значительно упростить себе жизнь. Но вот вопрос — что выбрать?
В этой статье мы пройдёмся по основным инструментам, позволяющим писать на Python. Мы не выберем за вас лучший вариант, но рассмотрим «за» и «против» каждого и поможем сделать взвешенное решение.
- Что такое IDE и редактор кода?
- Требования к хорошей среде разработки
- Редакторы и IDE с поддержкой Python
- Редакторы и среды разработки, написанные на Python
- Так какую Python IDE выбрать?
IDE (или интегрированная среда разработки) — это программа, предназначенная для разработки программного обеспечения. Как следует из названия, IDE объединяет несколько инструментов, специально предназначенных для разработки. Эти инструменты обычно включают редактор, предназначенный для работы с кодом (например, подсветка синтаксиса и автодополнение); инструменты сборки, выполнения и отладки; и определённую форму системы управления версиями.
Большинство IDE поддерживают множество языков программирования и имеют много функций, из-за чего могут быть большими, занимать много времени для загрузки и установки и требуют глубоких знаний для правильного использования.
С другой стороны, есть редакторы кода, которые представляют собой текстовый редактор с подсветкой синтаксиса и возможностями форматирования кода. Большинство хороших редакторов кода могут выполнять код и использовать отладчик, а лучшие даже могут взаимодействовать с системами управления версиями. По сравнению с IDE, хороший редактор кода, как правило, легковесней и быстрее, но зачастую ценой меньшей функциональности.
Требования к хорошей среде разработки
Итак, что нам нужно от среды разработки? Набор функций разных сред может отличаться, но есть набор базовых вещей, упрощающих программирование:
- Сохранение файлов. Если IDE или редактор не дают вам возможности сохранить работу и позже всё открыть в том же состоянии, в котором оно было во время закрытия, то не такая уж это и IDE.
- Запуск кода из среды. То же самое, если вам нужно выйти из среды для запуска кода, то это не более, чем простой текстовый редактор.
- Поддержка отладки. Возможность пошагово выполнить код является базовой функцией всех IDE и большинства хороших редакторов кода.
- Подсветка синтаксиса. Возможность быстро найти ключевые слова, переменные и прочее делает чтение и понимание кода на порядок проще.
- Автоматическое форматирование кода. Любой редактор или IDE, который действительно таковым является, распознает двоеточие после while или for выражения и автоматически сделает отступ на следующей строке.
Разумеется, есть множество других функций, от которых вы бы не отказались, но приведённые выше — основные функции, которыми должна обладать хорошая среда разработки.
А теперь давайте взглянем на некоторые инструменты общего назначения, которые можно использовать для разработки на Python.
Редакторы и IDE с поддержкой Python
Eclipse + PyDev
Тип: IDE
Сайт: www.eclipse.org
PyDev: www.pydev.org
Если вы близки с open-source сообществом, то вы наверняка слышали об Eclipse. Будучи доступным для Linux, Windows и OS X, Eclipse де-факто является open-source IDE для разработки на Java. Существует множество расширений и аддонов, которые делают Eclipse полезным для разного рода задач.
Одним из таких расширений является PyDev, предоставляющий интерактивную консоль Python и возможности для отладки и автодополнения кода. Установить его просто: запустите Eclipse, выберите Help → Eclipse Marketplace, затем найдите PyDev. Нажмите «Install» и при необходимости перезапустите Eclipse.
Преимущества: если у вас уже был установлен Eclipse, то установка PyDev пройдёт быстро и гладко. У опытного пользователя Eclipse не возникнет проблем с изучением этого расширения.
Недостатки: если вы только начинаете изучать Python или разработку в целом, Eclipse может стать непосильной ношей. Помните, мы говорили, что IDE большие и требуют больше опыта для полноценного использования? Всё это можно сказать об Eclipse.
Sublime Text
Тип: редактор кода
Сайт: http://www.sublimetext.com
Sublime Text, написанный инженером из Google с мечтой о лучшем текстовом редакторе, является весьма популярным редактором кода. Доступный на всех платформах, Sublime Text имеет встроенную поддержку редактирования Python-кода, а также богатый набор расширений, называемых пакетами, которые расширяют возможности синтаксиса и редактирования.
Установить дополнительный Python-пакет может быть непросто — все пакеты Sublime Text написаны на Python, поэтому для установки пакетов сообщества зачастую может потребоваться выполнить Python-скрипт непосредственно в редакторе.
Преимущества:у Sublime Text большое количество поклонников. Как редактор кода, Sublime Text быстрый, лёгкий и имеет хорошую поддержку.
Недостатки: Sublime Text не является бесплатным, хотя вы можете использовать пробный период сколько угодно. Установка расширений может превратиться в тот ещё квест. Кроме того, в редакторе нет поддержки отладки и запуска кода.
Atom
Тип: редактор кода
Сайт: https://atom.io/
Доступный на всех платформах Atom называют «хакабельным текстовым редактором 21 века». Atom написан с использованием Electron — фреймворка для создания кроссплатформенных приложений для десктопа средствами JavaScript, HTML и CSS — и имеет множество расширений. Поддержку Python можно также подключить с помощью расширения, которое можно установить прямо в Atom.
Преимущества: поддержка на всех платформах благодаря Electron. Atom лёгкий и быстро скачивается и загружается.
Недостатки: поддержка сборки и отладки не встроенная, а добавляется с помощью расширений. Поскольку Atom написан с помощью Electron, он всегда работает как JavaScript-процесс, а не как нативное приложение.
GNU Emacs
Тип: редактор кода
Сайт: https://www.gnu.org/software/emacs/
Задолго до войны iPhone с Android, до войны Linux с Windows, даже до войны PC с Mac была война редакторов с GNU Emacs в качестве одного из участников военных действий. Описываемый как «расширяемый, настраиваемый, самодокументированный текстовый редактор», GNU Emacs существует почти столь же долго, сколько и UNIX, и успел завоевать немало поклонников.
Доступный бесплатно на каждой платформе (в той или иной форме) GNU Emacs использует язык Lisp для кастомизации. Само собой, для Python тоже найдутся скрипты кастомизации.
Преимущества: вы знакомы с Emacs, вы используете Emacs, вы любите Emacs. Lisp — ваш второй язык, и вы знаете, что с ним вы способны на всё.
Недостатки: кастомизация подразумевает написание (или копипасту) Lisp-кода в различные скрипты. Если таковых не имеется, то вам, возможно, придётся изучить Lisp, чтобы со всем разобраться.
Vi / Vim
Тип: редактор кода
Сайт: https://www.vim.org/
По другую сторону баррикад в войне редакторов находится VI/VIM. Доступный по умолчанию на почти каждой UNIX-системе и Mac OS X, VI завоевал не меньшее количество поклонников. VI и VIM — модальные редакторы, которые отделяют просмотр файла от его редактирования. VIM включает в себя всё, что есть в VI, плюс некоторые усовершенствования вроде доступности расширений. Для разного рода Python-задач можно воспользоваться VIMScripts.
Преимущества: вы знакомы с VI, вы используете VI, вы любите VI. VIMScripts вас не пугают, и вы знаете, как подчинить их своей воле.
Недостатки: как и в случае с Emacs, вам не очень удобно искать или писать скрипты для добавления возможности разработки под Python, и вы не имеете ни малейшего понятия, как вообще должен работать модальный редактор.
Visual Studio
Тип: IDE
Сайт: https://www.visualstudio.com/vs/
Python-расширение: Python Tools for Visual Studio, aka PTVS
Visual Studio — полнофункциональная IDE от Microsoft, которая во многом сопоставима с Eclipse. Доступная на Windows и Mac OS, Visual Studio представлена как в бесплатном (Community), так и в платном (Professional и Enterprise) вариантах. Visual Studio позволяет разрабатывать приложения для разных платформ и предоставляет свой собственный набор расширений.
Python Tools for Visual Studio (PTVS) позволяет писать на Python в Visual Studio и включает в себя Intellisense для Python, отладку и другие инструменты.
Преимущества: как и в случае с Eclipse, если у вас уже установлена Visual Studio для других задач, установка PTVS пройдёт без проблем.
Недостатки: как и в случае с Eclipse, Visual Studio будет многовато, если вам нужен только Python. Кроме того, если вы пользуетесь Linux, то вы в пролёте — Visual Studio для этой платформы нет.
Visual Studio Code
Тип: редактор кода
Сайт: https://code.visualstudio.com/
Python tools: https://marketplace.visualstudio.com/items?itemName=ms-python.python
Visual Studio Code (не путать с Visual Studio) — полнофункциональный редактор кода, доступный на Windows, Linux и Mac OS X. VS Code является расширяемым open-source редактором, который можно настроить под любую задачу. Как и Atom, VS Code построен на Electron, поэтому у него есть те же преимущества и недостатки.
Добавить поддержку Python в VS Code проще простого — выполните поиск по запросу «Python» в Marketplace, нажмите «Install» и перезапустите редактор, если потребуется. VS Code автоматически определит интерпретатор Python и установленные библиотеки.
Преимущества: благодаря Electron, VS Code доступен на всех платформах с удивительно большой функциональностью. Кроме того, исходники можно найти в открытом доступе.
Недостатки: раз замешан Electron, значит VS Code не нативное приложение. Кроме того, некоторым людям религия не позволяет пользоваться продуктами Microsoft.
Редакторы и среды разработки, написанные на Python
PyCharm
Тип: IDE
Сайт: https://www.jetbrains.com/pycharm/
Одной из лучших полнофункциональных IDE, предназначенных именно для Python, является PyCharm. Существует как бесплатный open-source (Community), так и платный (Professional) варианты IDE. PyCharm доступен на Windows, Mac OS X и Linux.
PyCharm «из коробки» поддерживает разработку на Python напрямую — откройте новый файл и начинайте писать код. Вы можете запускать и отлаживать код прямо из PyCharm. Кроме того, в IDE есть поддержка проектов и системы управления версиями.
Преимущества: это среда разработки для Python с поддержкой всего и вся и хорошим коммьюнити. В ней «из коробки» можно редактировать, запускать и отлаживать Python-код.
Недостатки: PyCharm может медленно загружаться, а настройки по умолчанию, возможно, придётся подкорректировать для существующих проектов.
Spyder
Тип: IDE
Сайт: https://github.com/spyder-ide/spyder
Spyder — open-source IDE для Python, оптимизированная для data science. Spyder идёт в комплекте с менеджером пакетов Anaconda, поэтому вполне возможно, что он у вас уже установлен.
Что в Spyder интересно, так это то, что его целевой аудиторией являются data scientist’ы, использующие Python. Например, Spyder хорошо взаимодействует с такими библиотеками для data science, как SciPy, NumPy и Matplotlib.
Spyder обладает той функциональностью, которую вы можете ожидать от стандартной IDE, вроде редактора кода с подсветкой синтаксиса, автодополнения кода и даже встроенного обозревателя документации.
Отличительной особенностью Spyder является наличие проводника переменных. Он позволяет просмотреть значения переменных в форме таблицы прямо внутри IDE. Также хорошо работает интеграция с IPython/Jupyter.
Про Spyder можно сказать, что он более «приземлённый», чем другие IDE. Его можно рассматривать как инструмент для определённой цели, а не как основную среду разработки. Что в нём хорошо, так это, что он бесплатный, open-source и доступный на Windows, macOS и Linux.
Преимущества: вы data scientist, который пользуется Anaconda.
Недостатки: более опытные разработчики на Python могут найти Spyder недостаточно функциональным для повседневной работы и сделают свой выбор в пользу более функциональной IDE или редактора.
Thonny
Тип: IDE
Сайт: http://thonny.org/
Thonny называют IDE для новичков. Написанный и поддерживаемый Институтом информатики Тартуского университета в Эстонии, Thonny доступен на всех основных платформах.
По умолчанию Tonny устанавливается с версией Python, идущей в комплекте, поэтому вам не понадобится устанавливать ещё что-нибудь. Продвинутым пользователям, возможно, придётся изменить эту настройку, чтобы IDE нашла и использовала уже установленные библиотеки.
Преимущества: вы начинающий Python-программист и вам нужна IDE, с которой можно сразу идти в бой.
Недостатки: продвинутым пользователям будет недостаточно функциональности, а встроенный интерпретатор они заменят. Кроме того, учитывая новизну IDE, могут возникнуть проблемы, решения которых на данный момент нет.
Так какую Python IDE выбрать?
Решать только вам, но вот пара рекомендаций:
- Начинающим питонистам следует взять что-то с наименьшими возможностями кастомизации. Чем меньше препятствий, тем лучше;
- Если вы уже пользуетесь каким-нибудь редактором для других задач, то посмотрите в сторону редакторов кода;
- Ну а если у вас уже стоит IDE для другого языка, то попробуйте добавить в неё поддержку Python.
Смотрите также подборку материалов по Python для начинающих. Интересуетесь ещё и вебом? Тогда загляните в нашу аналогичную подборку IDE для веб-разработки.
Перевод статьи «Python IDEs and Code Editors (Guide)»
If you have anything to contribute — e.g. configurations for editors, new editors, or opinion — don’t hesitate to edit or create pages.
Please keep wiki links as wiki links, use external links only if there is no existing page for the editor. Please add pages like BoaConstructor also to page IntegratedDevelopmentEnvironments.
Name |
Platform |
Impl. Language |
License |
Notes |
a8 |
Linux, FreeBSD |
Python, GTK |
GPLv3 |
Embed Vim. Little brother of PIDA |
Alphatk |
Unix/X, Windows, Mac OS X |
Tcl/Tk |
Proprietary |
Extensible in Tcl, Tk; Can interact with python. |
Atom |
Unix/X, Windows, Mac OS X |
Python |
MIT |
Python language support for Atom-IDE, powered by the Python language server. |
Code::Blocks |
Linux, Windows, Mac OS X |
C++, wxWidgets |
GPLv3 |
class browser does not currently work for .py files, but it’s still a nice IDE to use for python projects |
Bluefish |
Linux, Windows, Mac OS X |
C, GTK+ |
GPLv3 |
The link points to the features page. |
Cream |
Linux, Windows, FreeBSD |
C |
GPLv3 |
Cream is a free and easy-to-use configuration of the powerful and famous Vim text editor for both Microsoft Windows and GNU/Lfinux. |
Cssed |
Unix/X, Windows, Mac OS X |
C, GTK+ |
GPLv2 |
CSS editor with syntax highlighting for Python, and embedded Python interpreter. Extensible through a Python API. |
codeEditor |
Unix/X, Windows, Mac OS X |
Python, wxPython |
BSD |
Extensible in Python; part of PythonCard. Includes PyCrust shell. |
eric |
Linux, Windows, Mac OS X |
Python, PyQt |
GPLv3 |
Complete IDE, very well integrated with PyQT development, but usable for any kind of project. Supports projects, debugging, auto-complete, syntax coloring, etc. It is extensible via plug-in system. Integrated version control interface for Git, Subversion and Mercurial through core plugins. eric6 requires Python 3 (and, if desired, PyQt5), and supports CxFreeze and PyInstaller, Django and Pyramid, PyLint and Vulture |
CRiSP |
Unix/X, Windows, Mac OS X |
Proprietary |
BRIEF-compatible, supports Python syntax, in-buffer Python interpreter, supports lots of languages. Powerful macro language. |
|
DRAKON Editor |
Windows, Mac OS X, Linux |
Tcl/Tk |
Public domain |
DRAKON diagram editor with code generation in Python. |
DreamPie |
Windows, Linux and Mac/MacPorts |
Python, PyGTK |
GPLv3 |
Interactive shell with history box and code box, auto-completion of attributes and file names, auto-display of function arguments and documentation. Keeps your recent results, provides session history saving (optionally in HTML), interactive plotting with matplotlib. Extremely fast and responsive. |
DrPython |
Unix/X, Windows, Mac OS X |
Python, wxPython |
GPL |
Simple, Highly Customizable Editor/Environment. A Tribute to DrScheme. |
Eclipse |
Unix/X, Windows, Mac OS X |
Java |
EPL |
Eclipse is … an open extensible IDE for anything and nothing in particular.» Support for Python can be obtained via the PyDEV plugin. |
EditPad Pro |
Linux, Windows |
Proprietary |
Built-in Python syntax highlighting, Python class browsing, Python-compatible regular expressions, code folding, and extensive options for running external tools such as Python scripts. |
|
Editra |
Linux, Windows, Mac OS X |
Python, wxPython |
wxWindows |
A general purpose developer’s text editor written in Python/wxPython. It supports python syntax highlighting, auto-ident, auto-completion, classbrowser, and can run scripts from inside the editor. Extensible with plugins written in python. |
EmacsEditor |
Unix/X, Windows, Mac OS |
C, Lisp |
GPLv3 |
Python support with EmacsPythonMode. Extensible in Python using pymacs |
Epsilon |
Linux, Windows, FreeBSD and OS/2 |
Proprietary |
Customizable Python mode, syntax coloring, function tagging. |
|
ExCo |
Linux, Windows, Mac OS |
Python, PyQt4 |
GPLv3 |
Extensible editor written in Python, Python/C/Nim code tree browser, 3-window editing, text diff, multi-language support, Python REPL, manipulate editor text with Python code |
FTE Text Editor |
Unix/X, Windows, DOS, OS/2 |
C++ |
GPL |
Supports lots of languages, including Python; doesn’t seem programmable |
Geany |
Unix/X, Windows |
C, GTK+ |
GPLv2 |
A small and lightweight GTK+ IDE that supports lots of languages, including Python. |
gedit |
Unix/X, Windows, Mac OS |
C, Python |
GPLv2 |
gedit is the official text editor of the GNOME desktop environment, with Python syntax highlighting. |
ideas |
Unix/X, Windows, Mac OS |
Python, PyQt |
Proprietary |
Ideas is a feature rich IDE that supports debugging, interpreting and project management. |
J |
Linux, Windows, Mac OS X |
Java |
GPLv2 |
syntax coloring for python, extensible with jython, supports many file formats, has folding, fully customisable, has sidebar for class and functions, fast for a Java application |
jHepWork |
Unix, Windows, Mac OS |
Java |
GPLv3 |
IDE with Jython Shell. Syntax coloring for python, extensible with jython, supports many file formats, fully customisable, has sidebar for class and functions |
Jasspa’s MicroEmacs |
Unix, Windows |
C |
GPLv2 |
Supports Python syntax and a Python-specific menu. |
JED |
Unix, VMS, MSDOS, OS/2, BeOS, QNX, and Windows. |
C |
GPLv2 |
Syntax highlighting and indenting, (optional) emacs keybindings, programmable with s-lang. Note: comment out «msw_help(…» line in pymode.sl if you are having problems on Windows. |
JEdit |
Unix, Windows, Mac OS |
Java |
GPLv2 |
Has three plugins — one for Jython and one for Python/Jython JpyDbg — interactive editing debugging, code browsing, highlighting. |
JpyDbg |
Linux, Windows, Mac OS |
Java, Python |
GPL |
Netbeans jEdit cross IDE plugin |
Jupp |
Unix/OSX/Cygwin/Interix (curses), MS-DOS (DR DOS, FreeDOS, Win, OS/2 DOS-Box) |
C |
GPL |
Versatile WordStar-like editor (JOE fork) with many colourised syntax-highlighting modes |
kdevelop |
Linux, Windows, Mac OS |
C++ |
GPLv2 |
Kde main developping app. Code folding, syntax highlighting, navigator. projects, class browser, version control, customizable keybindings. Comes also with some typical python project models: pyton Qt app, Tkinter app and simple script. |
Komodo IDE |
Unix, Windows, Mac OS X |
Proprietary |
Komodo is an award winning Python IDE from ActiveState. Fully-integrated Python 3 support featuring code intelligence with autocomplete and calltips, Python debugger (includes remote debugging), interactive shell, remote file support, macros, templating, emacs command support and great help documentation. There is also an open-source version called Komodo Edit (Source), as part of the Open Komodo project started November 2007. |
|
Komodo Edit |
Unix/X, Windows, Mac OS X |
Proprietary/Open Source |
scaled-down version of Komodo IDE which also supports Python, but excludes the integrated debugger. |
|
gEcrit |
Unix/X, Windows, Mac OS X |
Python, wxPython |
GPLv3 |
Python IDE with focus is on simplicity and ease of use. It is fast and lightweight. It features Python indentation, line numbers, code folding, syntax highlighting, shell access, code completion, a program runner, a source browser, indentation guides, a white space indicator, autosaving, an edge line, multiple tabs, printing, jumping to a specific line, word searching, word replacement, zooming undo/redo, pastebin.com code submission, Python syntax checking, the ability to change the indentation of many lines at once, autocompletiton, and bad brace checking. |
LeoEditor |
Linux, Windows, Mac OS X |
Python, PyQt |
MIT |
Outlining editor, fully scriptable and extensible, supporting literate programming. 100% pure Python code. |
medit |
Unix, Windows |
C, GTK+ |
LGPL |
Gtk editor with python bindings, allows plugins written in python. |
nano |
Linux, Windows |
C |
GNU GPL |
Small, terminal-based editor, Syntax highlighting |
ne |
Unix, Windows, Mac OS X |
C |
GPLv3 |
Easy to use, small, powerful, fast, terminal-based editor. Supports UTF-8, syntax highlighting, undo, autocomplete, macros, regexes, bookmarks. v2.4 released 2012-04 |
NEdit |
Unix/X, Windows, Mac OS X |
C |
GPLv2 |
X-Based, Python support builtin. |
Netbeans |
Unix/X, Windows, Mac OS X, others |
Java |
GPLv2 |
Netbeans is an open extensible cross platform IDE ; Support for Python can be obtained via the JpyDbg plugin. A new plugin exists for Netbeans 6.5 or newer — info. |
NINJA-IDE |
Linux, Windows, Mac OS |
Python, PyQt4 |
GPLv3 |
Lightweight and extensible editor. Class browser, project manager, PEP8 finder, virtualenv, plugin support |
UliPad |
Unix/X, Windows, Mac OS X |
Python, wxPython |
GPLv2 |
wxPython based editor. Can be easily extended with mixins and plugins, and has many features. Seems to be biased towards Python web development as contains FTP GUI, RSS aggregator and HTML preview. |
PowerPad |
Windows NT, Linux (with GTK+ 2) |
C++, wxWidgets |
Freeware |
Easy to use text editor with syntax highlighting for Python. Embeds the Python interpreter to extend functionality of the application |
PyCharm |
Linux, Windows, Mac OS X |
Java |
Apache 2.0 |
Full-featured IDE for Python. Has Free and Open Source edition fully supporting Python as well as proprietary Professional Edition with Django, Flask, Pyramid and Google App Engine support. |
PyDev |
Linux, Windows, Mac OS X |
Java, Eclipse |
EPL |
Eclipse plugin. Code-completion. Debugger. Under active development. (ShowMeDo Videos) |
Pye |
Linux, Windows |
Python, Tk |
GPLv3 |
Ultra-lightweight Python/text editor made in Python with Tk. Emphasis on easy customization and no-bloat attitude. |
pyedit |
PyBoard, Unix, Windows, Mac OS X |
Python |
MIT |
Written in Python — simple small editor, suitable for MicroPython/circuitPython/Pycopy. |
PyPE |
Unix, Windows, Mac OS X |
Python, wxPython |
GPLv2 |
Written in Python — code folding, snippets, unicode, multiple documents, code completion, several languages, macros. |
Python for VS Code |
Linux, Windows, Mac OS X |
NodeJs |
MIT |
Free open-source extension for Visual Studio Code. Supports syntax highlighting, debugging, code completion, code navigation, refactoring, with support for Django, multi threaded, local and remote debugging. |
PythonToolkit (PTK) |
Windows/Linux/Mac (wxPython) |
Python |
GPLv3 |
An interactive environment for python features include: Multiple independent python interpreters. Interactively program with different GUI toolkits (wxPython, TkInter, pyGTK, pyQT4 and PySide). Matlab style namespace/workspace browser. Object auto-completions, calltips and multi-line command editing in the console. Object inspection and python path management. Simple code editor and integrated debugger. |
Pyzo |
Unix/X, Windows, Mac OS X |
Python, PySide |
BSD License |
Open-source Python IDE focused on interactivity and introspection, which makes it very suitable for scientific computing. Its practical design is aimed at simplicity and efficiency. Pyzo consists of two main components, the editor and the shell, and uses a set of pluggable tools to help the programmer in various ways: e.g. source structure, interactive help, workspace, file browser (with functionality for searching). Also includes a post-mortem debugger. |
SciTE |
Windows, Linux (GTK+) |
C++ |
MIT-Like |
A highly configurable light-weight source code editor (about 50 file formats) based on widely-used Scintilla rich text widget/control. Features: sytax highlighting, code folding, auto-indent, brace matching, codepage/unicode support, multiple documents, context help, code execution, output pane, external tools support, RegExp find/replace, text export (HTML, RTF, PDF, LaTeX, XML). Python API for calltips and autocompletion available. |
SPE |
Windows, Linux, Mac OS X |
Python, wxPython |
GPLv3 |
Stani’s Python Editor. Auto indentation, auto completion, call tips, syntax coloring/highlighting, UML viewer, class explorer, source index, auto todo list, sticky notes, integrated PyCrust shell, Python file browser, recent file browser, drag&drop, context help. Blender support with a Blender 3D object browser, runs interactively inside Blender. Ships with WxGlade (GUI designer), PyChecker (source code doctor) and Kiki (regular expression console). Extensible with WxGlade. (ShowMeDo Videos) |
Spyder |
Windows, Linux, macOS |
Python, PyQt5 |
MIT |
Spyder is a powerful scientific environment written in Python, for Python,and designed by and for scientists, engineers and data analysts. It features a unique combination of the advanced editing, analysis, debugging and profiling functionality of a comprehensive development tool with the data exploration, interactive execution, deep inspection and beautiful visualization capabilities of a scientific package. Furthermore, Spyder offers built-in integration with many popular scientific packages, including NumPy, SciPy, Pandas, IPython, QtConsole, Matplotlib, SymPy, and more. Beyond its many built-in features, Spyder’s abilities can be extended even further via first- and third-party plugins. It is conveniently integrated in the cross-platform Anaconda distribution, and is the centerpiece of the Python(x,y) and WinPython distributions for Windows. |
SlickEdit |
Unix/X, Windows, Mac OS X |
Proprietary |
Syntax coloring, popup function arguments, class hierarchy browser, graphical debugger, and other nice Python features. Context tagging with class/module namespaces, code navigation, and smart indenting are also supported. |
|
Sublime Text |
Linux, Windows, Mac OS X |
C++, Python |
Proprietary |
Beautiful interface, Python syntax highlighting, Python plugins. |
Thonny |
Linux, Windows, Mac OS X |
Python |
MIT |
For teaching/learning programming. Focused on program runtime visualization. Provides stepping both in statements and expressions, no-hassle variables view, separate mode for explaining references etc. |
Vim |
Unix/X, Windows, Mac OS |
C |
Charityware |
Highly configurable text editor built to enable efficient text editing. Syntax coloring, indenting, autocompletion, and source-navigation tools for Python. Can be scripted in Python. See also Cream. |
Wing IDE |
Unix/X, Windows, Mac OS X |
Proprietary |
Powerful commercial IDE designed specifically for Python. Auto-completion, call tips, syntax highlighting, goto-definition, keyboard modes for emulating Visual Studio, VI/Vim, Emacs, & Brief, graphical debugger, code browser, integrated shell, scriptable in Python, and much more. (ShowMeDo Videos) |
|
wxKonTEXT |
Linux, Windows |
Python, wxPython |
GPL |
Simple text editor written in python. Syntax highlighter, Code fold, Export code in HTML… |
«IDEs» that don’t integrate anything Python-specific go here.
«IDEs» that run on mobile devices and tablets.
Table of Contents
Launched in 1991 by creator Guido van Rossum, Python was developed with an emphasis on code readability via syntax that allows developers to create more with fewer lines of code. This is why if you’re new to programming, it is often recommended that you start with Python. And if you’re looking to boost your productivity when developing Python code, you’ll want the best Python IDE or Python editor.
The Python language has evolved enormously over the years thanks to the contribution of Python developers and programmers worldwide. It’s now one of the most widely used programming languages with a huge range of packages, libraries, and frameworks.
Python is a versatile language that can be used for various applications including Blender (3D modeling software), machine learning/artificial intelligence, and web development to name a few. As Python is often used for scripting, lightweight text editors like notepad++ or even plain notepad can be useful Python tools.
Python interpreters are available on most operating systems including Linux, macOS, and Windows. If you plan to work on larger projects, we recommend a dedicated code editor or an integrated development environment (IDE). Python IDEs and Python code editors offer their own distinct features and user interfaces.
In this article, we will cover some of the most popular Python IDEs and Python editors, taking into account their pros, cons, and use cases. Many of also these offer free tiers, so you’ll be able to choose the best free IDE for Python if you’re just starting out.
Featured Python IDEs & Editors |
Pycharm: Hugely popular, powerful, and feature-rich Python IDE. Learn more |
Visual Studio Code: Lightweight and extensible code editor. Learn more |
Jupyter Notebook: Data Science IDE, easily run simulations and share data. Learn more |
Looking to master Python? The Complete Python Bootcamp from Udemy could be a great stepping stone for you. Also check out our article on the best Python courses to help you on your way to becoming a Python expert.
Before moving on, let’s first dig into what IDEs and code editors are, and then we’ll discuss the requirements for these Python tools to create a good development environment.
What are IDEs and Code Editors?
Whether you’re a college freshman taking your first CS course, or a Staff Software Engineer, you need an IDE or a code editor to efficiently edit, read, and debug code.
Recommend Python Course
Complete Python Bootcamp From Zero to Hero in Python
An integrated development environment (IDE) is a software application that helps programmers to develop software efficiently. It increases developer productivity by combining common developer tools such as software editing, building, testing, debugging, and packaging in one easy-to-use graphical user interface (GUI). Other popular features include code refactoring, code search, code auto-completion, and continuous integration/continuous deployment (CI/CD).
An IDE can also provide many more features and these generally vary with each IDE.
While code editors are similar to text editors, they are designed to both ease and speed up code development via sophisticated built-in capabilities and functionalities. Sometimes code editors can be mistaken for IDEs, but the main difference between the two is that IDEs provide more powerful tools to simplify the coding process.
10 Best Python IDE & Python Code Editors
To help you choose the best Python IDE or code editor, we’ve done some extensive research to put a list together of the ten top Python IDEs and Python code editors based on popularity, functionality, number of users, and user feedback. We’ve also made sure to include IDEs and editors in this list that cater to both beginners and professional developers.
To make sure each of the IDEs and editors were up to the task, we took the time to put them through their paces. This included installing each on a Windows, macOS, and Linux platform, and then running a range of Python scripts from small individual files, to multi-folder packages. This helped us to confirm that each of the options in this list were up to the task that they’d been designed for — whether that’s to assist beginner developers or allow professionals to level up their day-to-day coding experience.
1. Pycharm
Platform: Linux/macOS/Windows
Official website: https://www.jetbrains.com/pycharm/
Type: IDE
Developed by JetBrains, Pycharmis one of the most popular Python IDEs. With productivity tools like quick and safe code refactoring, Pycharm really stands out from the competition. It is available in three versions: Apache-licensed Community version, Educational (Edu) version, and proprietary Professional version. The first two versions are open source and free of charge, but you’ll have to pay for the Professional version.
The free Community version is great for beginners as it offers a variety of features such as syntax highlighting, auto-completion, and live code verification. The paid version offers advanced features like full database management along with a range of specific frameworks and web development tools.
Advantages:
- Active community support
- Lots of useful plugins and productivity shortcuts
- Executes, edits, and debugs Python code without any external requirements
Disadvantages:
- Professional version is rather expensive
- Free tier offers less functionality than the paid versions
- Community version does not allow other programming languages to be used
2. Pydev
Platform: GNU/Linux/macOS/Windows/Solaris
Official website: https://www.eclipse.org/; http://pydev.org/
Type: IDE
Eclipse is a free IDE that was historically designed for the Java language. Still, thanks to a system of plugins or extensions, you can use it with other languages, including Python.
You’ll need the Pydev plugin to use Eclipse as a Python IDE, which then allows you to develop in Python, Jython, or IronPython. Pydev also uses advanced inference techniques to provide features like auto-completion and code analysis.
As one of the best IDEs for Python, Eclipse also provides these features: debugger, Django, interactive console, basic syntax highlighting, code coverage, and more.
Advantages:
- Easy to learn and feature-rich
- Has a large and active community
Disadvantages:
- User interface is not very less modern
- Plugins can be unstable
3. IDLE
Platform: Linux/macOS/Windows
Official website:https://docs.python.org/3/library/idle.html
Type: IDE
IDLE, or Integrated Development and Learning Environment, is a free IDE that comes bundled with any Python installation. It allows you to edit, run, and debug Python code in a simple Python shell and code editor environment, making it great for beginners.
As a cross-platform IDE, it is available on Windows, LInux, and MacOS. IDLE consists of a multi-window text editor with syntax highlighting and an integrated debugger that offers stepping, persistent breakpoints, and call stack visibility.
Advantages:
- User-friendly for beginners
- Offers features like syntax highlighting, search, auto-completion, & smart indent
- Integrated debugger with stepping & breakpoint features
Disadvantages:
- May be too simple for some
- Not suitable for large projects
- Lacks the advanced features offered by other IDEs
4. Visual Studio Code (VS Code)
Platform: Linux/macOS/Windows
Official website:https://code.visualstudio.com
Type: Code Editor
Developed by Microsoft for Windows, Linux and macOS, VS Code is a free and extensible code editor (not to be confused with Visual Studio). VS Code is a small but comprehensive open source code editor with an MIT license. It supports several programming languages, including Python after you install an extension. VS Code is relatively lightweight and comes with many useful features like syntax highlighting, code auto-completion, Git integration, and advanced code debugging. If you’re looking for a lightweight, fast, and customizable Python code editor, it’s a great choice.
One of the main advantages of VS Code is a design that makes great use of an extension-based architecture. Being lightweight, it can be easily extended by adding new components when they’re needed.
Advantages:
- Advanced customization with 30,000+ extensions in circulation
- Powerful code management engine
- You can import keyboard shortcuts from Python editors like Sublime Text or Atom
Disadvantages:
- Initial customization can be overwhelming/difficult due to the quantity of available extensions
- Extensions can be unreliable at times
5. Sublime Text
Platform: Linux/macOS/Windows
Official website:http://www.sublimetext.com/
Type: Code Editor
First conceived as an extension for Vim, Sublime Text is a generic text editor written in C++ and Python code. Since the launch of version 2.0, it supports 44 major programming languages, including Python. Sublime Text requires a paid license, but there is an option to evaluate the code editor for free (and without an enforced time limit!).
After installing Sublime Text, thanks to its different plugins and packages, you get a high-quality and powerful tool that is one of the best Python editors to help you with your development. It also incorporates most of the features you’d expect from a basic Python IDE, including customizable syntax highlighting.
Advantages:
- Fast, with very few bugs (big advantage)
- Offers a variety of customization with plugins
- Supports many languages
Disadvantages:
- License required
- Plugins can be confusing/difficult to install
- Steep learning Curve
6. Jupyter Notebook
Platform: Linux/macOS/Windows
Official website: https://jupyter.org/
Type: IDE
Jupyter notebook is a free and open source IDE that is used to create Jupyter documents. Uniquely, it is a web-based IDE that allows you to easily share your work.
Jupyter Notebook is very popular among data scientists as it’s great for machine learning, simulations, data visualizations, data analysis, and also for sharing and presenting findings. Jupyter is ready to work right out of the box, requiring little to no configuration. This makes it a perfect tool for quick Python scripting.
Advantages:
- Easy to use and learn
- Supports 40+ different languages
- Easy to share work
Disadvantages:
- Mostly suited to development in the fields of data and scientific computing
- Lacks advanced features offered by other IDEs
- Coding within independent cells may be difficult to manage as the cell count increases
7. Spyder
Platform: Linux/macOS/Windows
Official website:https://github.com/spyder-ide/spyder
Type: IDE
The Python scientific community has been maintaining Spyder since 2012. With basic features like syntax highlighting and auto-completion, Spyder also integrates several scientificlibraries like Matplotlib,NumPy, IPython, and SciPy. It is free, multi-platform, open-source, and the installation is very easy with a Python package manager like Pip.
Spyder offers a unique combination of advanced analysis, debugging, editing, interactive execution, in-depth inspection, and visualization capabilities that are comparable to scientific software packages. Its main components are the interactive console, the documentation viewer, the variable explorer, and development tools. These features make Spyder one of the best IDEs for Python code in scientific development.
Advantages:
- Community support
- Rich set of development tools
- Comprehensive documentation
Disadvantages:
- Execution dependencies
- Optional dependencies
- Steep learning curve
8. Wing
Platform: Linux/macOS/Windows
Official website: https://wingware.com/
Type: IDE
Wing is a Python IDE that was specifically designed to provide a more productive development experience in Python. It offers a strong range of features including code feedback, syntax highlighting, code auto-completion, smart refactoring, and more.
Wing has three pricing tiers: Wing Pro (paid), Wing Personal (free), and Wing 101 (free). As a scaled-back version of Wing Personal, Wing 101 was originally designed for teaching entry-level computer science courses which makes it one of the best IDEs for Python beginners. As you’d expect, Wing Pro (the paid version) is the most feature-rich of the available options.
Advantages:
- Customizable and extensible
- Powerful debugger
- Feature-rich
Disadvantages:
- Minimal support for languages that aren’t Python-based
- Wing Pro can be expensive, and it has to be renewed annually
- UI is a little outdated
9. GNU/Emacs
Platform: Linux/macOS/Windows
Official website:https://www.gnu.org
Type: Text editor
GNU Emacs is a feature-rich text editor that is highly customizable via various extensions and it’s available to download for free on all platforms.
For Python development, you can use the Elpy extension This is a feature rich Emacs extension for working with Python projects. Among its many features, we have to mention syntax highlighting that differentiates document elements such as keywords and comments, and automatic indentation which ensures consistent formatting throughout your file.
Advantages:
- Free and fully customizable
- Fully navigable via keyboard bindings (but you don’t have to)
- 24-bit color encoded support for terminals that support this
Disadvantages:
- Steep learning curve
- Documentation may be out of date
10. Thonny
Platform: Linux/macOS/Windows
Official website:https://thonny.org
Type: IDE
Thonny is advertised as the Python IDE for beginners. Designed to make life easier for new Python developers, Thonny is a simple and lightweight IDE with excellent features that is free of charge. This makes it one of the best IDES for Python beginners that want to start developing in a simple environment, but less so for expert Python developers that want more from their next Python IDE.
With a UI that is isolated from features that may distract beginners, Thonny is a well-thought-out pedagogical IDE for beginners who want to develop in Python quickly, easily, and simply.
Advantages:
- IDE adapted for beginners’ learning
- Basic and functional user interface
- Easy to get started (comes with Python built-in)
Disadvantages:
- Not for the experienced developer
- Lacks advanced features offered by other IDEs
How to choose the best Python IDE in 2023?
For beginners, there are several Python IDEs that allow you to build a comfort level with the environment as you become steadily familiar with each feature.
For ease of installation, IDLE is a strong choice for beginners as it’s bundled with Python on your system. If you’d like to explore other options, Thonny and Wing 101 are excellent choices as they’ve both been designed with beginners in mind.
But if you’d like to code in a more professional environment, you could consider Pycharm as your next IDE, or if you’d prefer portability, VS Code is a solid choice as one of the best Python code editors.
Experienced and professional developers find themselves spoilt for choice. If you’re after an IDE that offers strong performance with larger projects, then Pycharm or PyDev (Eclipse) are popular options. Similarly, VS Code is often chosen when a code editor is preferred.
If you’re part of the ever-expanding data science community then Jupyter should be at the top of your list. Equally, Spyder is one of the best python ides for scientific computing, so this may be a good choiceif your development aligns with its strengths.
Then again, perhaps you’re a little more ‘old school’ and you’d prefer the look and feel of GNU/Emacs or Sublime, both of which are very popular with Linux developers.
Free Python IDE |
Python IDE for Mac |
Python IDE for Windows |
|
|
|
Conclusion
Python is one of the most well-known languages and perhaps even the most popular. If you’re looking for the best Python IDE to boost your productivity, you have a multitude of useful, practical, and powerful Python IDEs to choose from, be they paid options or free. Equally, if you prefer a lightweight code editor, there’s plenty to choose from in both the free and paid tiers.
If you’re a Python beginner then the Complete Python Bootcamp course is a great place to start your beginner-to-expert Python developer journey.
Frequently Asked Questions
1. What Is the Best IDE for Python?
The best Python IDE is that which enhances your coding experience and productivity by the greatest margin. If you’re a beginner, then it may be good to start with IDLE, Thonny or Wing 101. If you’re an experienced developer, you can choose any of the IDEs we’ve covered, but the most popular choices tend to be Pycharm for an IDE and VS Code for a code editor.
2. Which is the Best Python IDE for Beginners?
Several Python IDEs have been designed with beginners in mind. These let you build a comfort level with the environment as you become familiar with each feature. IDLE is a good choice as it’s installed with Python. Thonny and Wing 101 are also excellent choices as they offer simple UIs that were designed for beginner developers. Pycharm’s free tier is also one of the best Python environments for beginners.
3. What Is the Official IDE for Python?
There is no official IDE for Python per se. IDLE is bundled with Python, so it could be viewed as the official IDE, but the Python developer community is open-minded and collaborative, meaning that there’s extensive user support and feedback for each of the Python IDEs we’ve covered.
4. Which Python IDE Should I Use for Machine Learning?
Jupyter is a popular choice for machine learning developers as it offers ease of use with running simulations and sharing results with others. Similarly, Spyder is popular with the data science community due to its extensive scientific computing features and library integration. However, any of the IDEs we’ve covered can be used for machine learning if you’ve installed the necessary libraries.
People are also reading:
- What is Pycharm?
- Python Programming Language
- Python Best Courses
- Best Python Libraries
- Best Python Courses
- Best Python Certifications
- Best Python Books
- Top Python Projects
- Top Python Interview Questions
Table of Contents
Launched in 1991 by creator Guido van Rossum, Python was developed with an emphasis on code readability via syntax that allows developers to create more with fewer lines of code. This is why if you’re new to programming, it is often recommended that you start with Python. And if you’re looking to boost your productivity when developing Python code, you’ll want the best Python IDE or Python editor.
The Python language has evolved enormously over the years thanks to the contribution of Python developers and programmers worldwide. It’s now one of the most widely used programming languages with a huge range of packages, libraries, and frameworks.
Python is a versatile language that can be used for various applications including Blender (3D modeling software), machine learning/artificial intelligence, and web development to name a few. As Python is often used for scripting, lightweight text editors like notepad++ or even plain notepad can be useful Python tools.
Python interpreters are available on most operating systems including Linux, macOS, and Windows. If you plan to work on larger projects, we recommend a dedicated code editor or an integrated development environment (IDE). Python IDEs and Python code editors offer their own distinct features and user interfaces.
In this article, we will cover some of the most popular Python IDEs and Python editors, taking into account their pros, cons, and use cases. Many of also these offer free tiers, so you’ll be able to choose the best free IDE for Python if you’re just starting out.
Featured Python IDEs & Editors |
Pycharm: Hugely popular, powerful, and feature-rich Python IDE. Learn more |
Visual Studio Code: Lightweight and extensible code editor. Learn more |
Jupyter Notebook: Data Science IDE, easily run simulations and share data. Learn more |
Looking to master Python? The Complete Python Bootcamp from Udemy could be a great stepping stone for you. Also check out our article on the best Python courses to help you on your way to becoming a Python expert.
Before moving on, let’s first dig into what IDEs and code editors are, and then we’ll discuss the requirements for these Python tools to create a good development environment.
What are IDEs and Code Editors?
Whether you’re a college freshman taking your first CS course, or a Staff Software Engineer, you need an IDE or a code editor to efficiently edit, read, and debug code.
Recommend Python Course
Complete Python Bootcamp From Zero to Hero in Python
An integrated development environment (IDE) is a software application that helps programmers to develop software efficiently. It increases developer productivity by combining common developer tools such as software editing, building, testing, debugging, and packaging in one easy-to-use graphical user interface (GUI). Other popular features include code refactoring, code search, code auto-completion, and continuous integration/continuous deployment (CI/CD).
An IDE can also provide many more features and these generally vary with each IDE.
While code editors are similar to text editors, they are designed to both ease and speed up code development via sophisticated built-in capabilities and functionalities. Sometimes code editors can be mistaken for IDEs, but the main difference between the two is that IDEs provide more powerful tools to simplify the coding process.
10 Best Python IDE & Python Code Editors
To help you choose the best Python IDE or code editor, we’ve done some extensive research to put a list together of the ten top Python IDEs and Python code editors based on popularity, functionality, number of users, and user feedback. We’ve also made sure to include IDEs and editors in this list that cater to both beginners and professional developers.
To make sure each of the IDEs and editors were up to the task, we took the time to put them through their paces. This included installing each on a Windows, macOS, and Linux platform, and then running a range of Python scripts from small individual files, to multi-folder packages. This helped us to confirm that each of the options in this list were up to the task that they’d been designed for — whether that’s to assist beginner developers or allow professionals to level up their day-to-day coding experience.
1. Pycharm
Platform: Linux/macOS/Windows
Official website: https://www.jetbrains.com/pycharm/
Type: IDE
Developed by JetBrains, Pycharmis one of the most popular Python IDEs. With productivity tools like quick and safe code refactoring, Pycharm really stands out from the competition. It is available in three versions: Apache-licensed Community version, Educational (Edu) version, and proprietary Professional version. The first two versions are open source and free of charge, but you’ll have to pay for the Professional version.
The free Community version is great for beginners as it offers a variety of features such as syntax highlighting, auto-completion, and live code verification. The paid version offers advanced features like full database management along with a range of specific frameworks and web development tools.
Advantages:
- Active community support
- Lots of useful plugins and productivity shortcuts
- Executes, edits, and debugs Python code without any external requirements
Disadvantages:
- Professional version is rather expensive
- Free tier offers less functionality than the paid versions
- Community version does not allow other programming languages to be used
2. Pydev
Platform: GNU/Linux/macOS/Windows/Solaris
Official website: https://www.eclipse.org/; http://pydev.org/
Type: IDE
Eclipse is a free IDE that was historically designed for the Java language. Still, thanks to a system of plugins or extensions, you can use it with other languages, including Python.
You’ll need the Pydev plugin to use Eclipse as a Python IDE, which then allows you to develop in Python, Jython, or IronPython. Pydev also uses advanced inference techniques to provide features like auto-completion and code analysis.
As one of the best IDEs for Python, Eclipse also provides these features: debugger, Django, interactive console, basic syntax highlighting, code coverage, and more.
Advantages:
- Easy to learn and feature-rich
- Has a large and active community
Disadvantages:
- User interface is not very less modern
- Plugins can be unstable
3. IDLE
Platform: Linux/macOS/Windows
Official website:https://docs.python.org/3/library/idle.html
Type: IDE
IDLE, or Integrated Development and Learning Environment, is a free IDE that comes bundled with any Python installation. It allows you to edit, run, and debug Python code in a simple Python shell and code editor environment, making it great for beginners.
As a cross-platform IDE, it is available on Windows, LInux, and MacOS. IDLE consists of a multi-window text editor with syntax highlighting and an integrated debugger that offers stepping, persistent breakpoints, and call stack visibility.
Advantages:
- User-friendly for beginners
- Offers features like syntax highlighting, search, auto-completion, & smart indent
- Integrated debugger with stepping & breakpoint features
Disadvantages:
- May be too simple for some
- Not suitable for large projects
- Lacks the advanced features offered by other IDEs
4. Visual Studio Code (VS Code)
Platform: Linux/macOS/Windows
Official website:https://code.visualstudio.com
Type: Code Editor
Developed by Microsoft for Windows, Linux and macOS, VS Code is a free and extensible code editor (not to be confused with Visual Studio). VS Code is a small but comprehensive open source code editor with an MIT license. It supports several programming languages, including Python after you install an extension. VS Code is relatively lightweight and comes with many useful features like syntax highlighting, code auto-completion, Git integration, and advanced code debugging. If you’re looking for a lightweight, fast, and customizable Python code editor, it’s a great choice.
One of the main advantages of VS Code is a design that makes great use of an extension-based architecture. Being lightweight, it can be easily extended by adding new components when they’re needed.
Advantages:
- Advanced customization with 30,000+ extensions in circulation
- Powerful code management engine
- You can import keyboard shortcuts from Python editors like Sublime Text or Atom
Disadvantages:
- Initial customization can be overwhelming/difficult due to the quantity of available extensions
- Extensions can be unreliable at times
5. Sublime Text
Platform: Linux/macOS/Windows
Official website:http://www.sublimetext.com/
Type: Code Editor
First conceived as an extension for Vim, Sublime Text is a generic text editor written in C++ and Python code. Since the launch of version 2.0, it supports 44 major programming languages, including Python. Sublime Text requires a paid license, but there is an option to evaluate the code editor for free (and without an enforced time limit!).
After installing Sublime Text, thanks to its different plugins and packages, you get a high-quality and powerful tool that is one of the best Python editors to help you with your development. It also incorporates most of the features you’d expect from a basic Python IDE, including customizable syntax highlighting.
Advantages:
- Fast, with very few bugs (big advantage)
- Offers a variety of customization with plugins
- Supports many languages
Disadvantages:
- License required
- Plugins can be confusing/difficult to install
- Steep learning Curve
6. Jupyter Notebook
Platform: Linux/macOS/Windows
Official website: https://jupyter.org/
Type: IDE
Jupyter notebook is a free and open source IDE that is used to create Jupyter documents. Uniquely, it is a web-based IDE that allows you to easily share your work.
Jupyter Notebook is very popular among data scientists as it’s great for machine learning, simulations, data visualizations, data analysis, and also for sharing and presenting findings. Jupyter is ready to work right out of the box, requiring little to no configuration. This makes it a perfect tool for quick Python scripting.
Advantages:
- Easy to use and learn
- Supports 40+ different languages
- Easy to share work
Disadvantages:
- Mostly suited to development in the fields of data and scientific computing
- Lacks advanced features offered by other IDEs
- Coding within independent cells may be difficult to manage as the cell count increases
7. Spyder
Platform: Linux/macOS/Windows
Official website:https://github.com/spyder-ide/spyder
Type: IDE
The Python scientific community has been maintaining Spyder since 2012. With basic features like syntax highlighting and auto-completion, Spyder also integrates several scientificlibraries like Matplotlib,NumPy, IPython, and SciPy. It is free, multi-platform, open-source, and the installation is very easy with a Python package manager like Pip.
Spyder offers a unique combination of advanced analysis, debugging, editing, interactive execution, in-depth inspection, and visualization capabilities that are comparable to scientific software packages. Its main components are the interactive console, the documentation viewer, the variable explorer, and development tools. These features make Spyder one of the best IDEs for Python code in scientific development.
Advantages:
- Community support
- Rich set of development tools
- Comprehensive documentation
Disadvantages:
- Execution dependencies
- Optional dependencies
- Steep learning curve
8. Wing
Platform: Linux/macOS/Windows
Official website: https://wingware.com/
Type: IDE
Wing is a Python IDE that was specifically designed to provide a more productive development experience in Python. It offers a strong range of features including code feedback, syntax highlighting, code auto-completion, smart refactoring, and more.
Wing has three pricing tiers: Wing Pro (paid), Wing Personal (free), and Wing 101 (free). As a scaled-back version of Wing Personal, Wing 101 was originally designed for teaching entry-level computer science courses which makes it one of the best IDEs for Python beginners. As you’d expect, Wing Pro (the paid version) is the most feature-rich of the available options.
Advantages:
- Customizable and extensible
- Powerful debugger
- Feature-rich
Disadvantages:
- Minimal support for languages that aren’t Python-based
- Wing Pro can be expensive, and it has to be renewed annually
- UI is a little outdated
9. GNU/Emacs
Platform: Linux/macOS/Windows
Official website:https://www.gnu.org
Type: Text editor
GNU Emacs is a feature-rich text editor that is highly customizable via various extensions and it’s available to download for free on all platforms.
For Python development, you can use the Elpy extension This is a feature rich Emacs extension for working with Python projects. Among its many features, we have to mention syntax highlighting that differentiates document elements such as keywords and comments, and automatic indentation which ensures consistent formatting throughout your file.
Advantages:
- Free and fully customizable
- Fully navigable via keyboard bindings (but you don’t have to)
- 24-bit color encoded support for terminals that support this
Disadvantages:
- Steep learning curve
- Documentation may be out of date
10. Thonny
Platform: Linux/macOS/Windows
Official website:https://thonny.org
Type: IDE
Thonny is advertised as the Python IDE for beginners. Designed to make life easier for new Python developers, Thonny is a simple and lightweight IDE with excellent features that is free of charge. This makes it one of the best IDES for Python beginners that want to start developing in a simple environment, but less so for expert Python developers that want more from their next Python IDE.
With a UI that is isolated from features that may distract beginners, Thonny is a well-thought-out pedagogical IDE for beginners who want to develop in Python quickly, easily, and simply.
Advantages:
- IDE adapted for beginners’ learning
- Basic and functional user interface
- Easy to get started (comes with Python built-in)
Disadvantages:
- Not for the experienced developer
- Lacks advanced features offered by other IDEs
How to choose the best Python IDE in 2023?
For beginners, there are several Python IDEs that allow you to build a comfort level with the environment as you become steadily familiar with each feature.
For ease of installation, IDLE is a strong choice for beginners as it’s bundled with Python on your system. If you’d like to explore other options, Thonny and Wing 101 are excellent choices as they’ve both been designed with beginners in mind.
But if you’d like to code in a more professional environment, you could consider Pycharm as your next IDE, or if you’d prefer portability, VS Code is a solid choice as one of the best Python code editors.
Experienced and professional developers find themselves spoilt for choice. If you’re after an IDE that offers strong performance with larger projects, then Pycharm or PyDev (Eclipse) are popular options. Similarly, VS Code is often chosen when a code editor is preferred.
If you’re part of the ever-expanding data science community then Jupyter should be at the top of your list. Equally, Spyder is one of the best python ides for scientific computing, so this may be a good choiceif your development aligns with its strengths.
Then again, perhaps you’re a little more ‘old school’ and you’d prefer the look and feel of GNU/Emacs or Sublime, both of which are very popular with Linux developers.
Free Python IDE |
Python IDE for Mac |
Python IDE for Windows |
|
|
|
Conclusion
Python is one of the most well-known languages and perhaps even the most popular. If you’re looking for the best Python IDE to boost your productivity, you have a multitude of useful, practical, and powerful Python IDEs to choose from, be they paid options or free. Equally, if you prefer a lightweight code editor, there’s plenty to choose from in both the free and paid tiers.
If you’re a Python beginner then the Complete Python Bootcamp course is a great place to start your beginner-to-expert Python developer journey.
Frequently Asked Questions
1. What Is the Best IDE for Python?
The best Python IDE is that which enhances your coding experience and productivity by the greatest margin. If you’re a beginner, then it may be good to start with IDLE, Thonny or Wing 101. If you’re an experienced developer, you can choose any of the IDEs we’ve covered, but the most popular choices tend to be Pycharm for an IDE and VS Code for a code editor.
2. Which is the Best Python IDE for Beginners?
Several Python IDEs have been designed with beginners in mind. These let you build a comfort level with the environment as you become familiar with each feature. IDLE is a good choice as it’s installed with Python. Thonny and Wing 101 are also excellent choices as they offer simple UIs that were designed for beginner developers. Pycharm’s free tier is also one of the best Python environments for beginners.
3. What Is the Official IDE for Python?
There is no official IDE for Python per se. IDLE is bundled with Python, so it could be viewed as the official IDE, but the Python developer community is open-minded and collaborative, meaning that there’s extensive user support and feedback for each of the Python IDEs we’ve covered.
4. Which Python IDE Should I Use for Machine Learning?
Jupyter is a popular choice for machine learning developers as it offers ease of use with running simulations and sharing results with others. Similarly, Spyder is popular with the data science community due to its extensive scientific computing features and library integration. However, any of the IDEs we’ve covered can be used for machine learning if you’ve installed the necessary libraries.
People are also reading:
- What is Pycharm?
- Python Programming Language
- Python Best Courses
- Best Python Libraries
- Best Python Courses
- Best Python Certifications
- Best Python Books
- Top Python Projects
- Top Python Interview Questions
Если у вас на компьютере установлен язык программирования (компилятор или интерпретатор), можно писать код даже в Блокноте, а затем исполнять его через консоль. Но это неудобно. Разработчики пользуются редакторами кода или IDE — интегрированными средами разработки. Так называется комплекс программных средств для кодинга: в них можно писать, редактировать, исполнять и отлаживать код.
Мы поговорим о таких средствах для Python. Это популярный язык программирования, который применяется во множестве отраслей: от веба до прикладной математики. Поэтому инструменты многочисленны и разнообразны.
Узнать о нем больше можно в нашей статье Кому и для чего нужен Python?
Итак, существует два вида ПО для кодинга: IDE и редактор кода. Они похожи с первого взгляда, но сильно различаются возможностями.
- Редактор кода — это простая легковесная программа, которая похожа на текстовый редактор, только больше адаптированная под написание кода. Она сохраняет проекты в нужном расширении, подсвечивает синтаксис и автоматически проверяет отступы в коде.
- IDE — более масштабный инструмент, программный комплекс. Помимо редактора в нем есть собственная консоль, инструменты для запуска, тестирования и отладки кода. Через IDE можно создавать крупные проекты, подключать систему контроля версий (Git). Некоторые IDE позволяют устанавливать внутри себя новые фреймворки и библиотеки, не заходя в терминал системы.
Редактор кода — это или самостоятельная программа, или часть IDE. Он выглядит как окно, где можно набрать текст, но более адаптирован под код.
Подсветка синтаксиса. Это означает, что, например, служебные слова будут одного цвета, комментарии — другого, классы будут выделяться другим начертанием и так далее. Это помогает быстрее ориентироваться в коде и находить нужные места. Более того, большинство существующих инструментов используются для нескольких языков программирования, поэтому знают синтаксис не только Python. При создании файла можно выбрать, на какой язык будет ориентироваться подсветка. Также программа может понять это самостоятельно по расширению файла.
Форматирование и установка отступов. Отступы используются практически во всех языках программирования, но в Python они обязательны и являются частью синтаксиса. Редакторы обычно умеют поддерживать и ставить нужные отступы автоматически. Но это только малая часть. Хорошие IDE и редакторы поддерживают более масштабное автоформатирование. например, во многих редакторах есть спеллчекеры — они показывают, если что-то написано неправильно, и обращают внимание пользователя на ошибку. Также есть инструменты, которые автоматически дополняют команды и функции из кода.
Возможность запуска кода. Изначально запуск кода был прерогативой IDE, но в некоторых редакторах есть возможность запуска написанного кода в консоли непосредственно из него. Не нужно выходить из редактора и открывать терминал, все запустится автоматически нажатием соответствующей кнопки в редакторе.
Создание, редактирование и сохранение файлов. Большинство редакторов и практически все IDE могут показывать структуру файлов в папке. Обычно это нужно для проектов, которые включают больше одного файла. Прямо внутри среды можно переключаться между файлами, создавать новые в папках и подпапках, сохранять изменения. Более того, многие приложения поддерживают системы контроля версий вроде Git и дают возможность делать коммиты прямо из среды, причем это умеют не только IDE, но и некоторые редакторы.
Отладка. Это процесс нахождения и исправления ошибок. Чтобы это можно было сделать быстрее, существуют расширенные возможности: пошаговое выполнение кода, остановка исполнения в определенной точке, просмотр содержимого переменных в любой момент времени и многое другое. Все это входит в функционал инструментов отладки.
Кастомизация. Любую IDE и почти любой редактор можно настроить под себя. Это не только цветовая гамма и размеры шрифта, но и расположение окон и кода, панели под рукой, горячие клавиши и многое другое. Некоторые инструменты поддерживают дополнения — сторонние расширения, дополняющие функциональность. Их можно установить в IDE или даже в редактор. Например, браузерные расширения или возможность по-новому редактировать код или дополнять слова.
Читайте также: С чего начать учить Python?
В редакторах есть все инструменты для начального уровня работы с кодом, и часто их бывает достаточно. Рассмотрим отдельные возможности, которые предоставляют IDE:
- визуальный редактор для быстрого создания проектов из блоков и отдельных файлов;
- полная синхронизация с системой контроля версий;
- интерактивная консоль;
- дополнительные инструменты для того или иного направления IT;
- множество возможностей для наглядной отладки, тестирования, анализа кода, а также решения различных задач;
- возможность установить фреймворк или библиотеку через интерфейс среды;
- возможность работать с несколькими языками программирования, в том числе одновременно.
Кому-то будет удобнее работать с простым и не занимающим много памяти редактором, а кому-то — с масштабной IDE со множеством дополнительных возможностей.
Отличный вариант как для начинающих, так и для продвинутых программистов. У PyCharm понятный интерфейс, она изначально адаптирована под Python. Ее не придется долго донастраивать, чтобы код просто запустился, — можно установить IDE и сразу начать работать. Среда отлично поддерживает всевозможные дополнения и дает огромный простор действий. Но загружается и работает она все же медленнее, чем средний редактор.
PyCharm существует в платной коммерческой и бесплатной комьюнити-версии. Бесплатной хватает большинству начинающих программистов, а коммерческая нужна в основном компаниям и профессионалам, работающим с большими проектами.
Это бесплатная опенсорсная IDE для Python с важным нюансом: она рассчитана на разработку в сфере Data Science. В ней есть много инструментов и оптимизаций для работы с данными, но для других задач она подходит не так хорошо. Например, Spyder «из коробки» включает пакетный менеджер Anaconda, который используется в анализе данных и машинном обучении. Он хорошо и быстро работает с библиотеками для математики и ML. Кроме того, за него не надо платить, а основные функции IDE в нем есть.
Минус в том, что это специализированный инструмент — разработчикам вне науки о данных и машинного обучения он может показаться недостаточно удобным.
Эта среда по умолчанию поставляется с Python. Она написана на нем, имеет все возможности интегрированной среды разработки, проста и минималистична. С ней можно начать программировать, но для дальнейшей работы, скорее всего, будет удобнее другой, более масштабный инструмент.
Интересный факт: как язык Python был назван в честь комик-группы «Монти Пайтон», так и IDLE назвали в честь одного из участников этой группы — Эрика Айдла.
Еще один вариант для начинающих, простой, но функциональный. Эта IDE уже включает в себя нужную разработчику версию Python и не требует сложных дополнительных настроек. Ее называют Python IDE for beginners — это определение дали среде ее разработчики.
Для начинающих Thonny действительно подойдет: в ней легко разобраться, она бесплатная и понятная. Но для тех, кому нужна расширенная функциональность, ее будет недостаточно.
Существует как минимум две IDE, изначально созданные для других языков, но поддерживающие в данный момент и Python. Такие IDE будут полезны тем, кто работает с несколькими языками одновременно.
Мощная мультиязычная среда от Microsoft. Она гибко настраивается под задачи, включает инструменты для написания кода под множество платформ и направлений. VS поддерживает C/C++, Java, Python, JavaScript и TypeScript и пр. Ей пользуются для веба, для написания приложений под ПК и мобильные устройства, для создания программ под разные операционные системы. В ней есть все, что нужно любому разработчику, а дополнительные модули расширяют функциональность среды под конкретные задачи. В VS есть и инструменты для сборки интерфейсов, и отладка, и ПО для рефакторинга или дополнения слов.
Чтобы работать с Python в Visual Studio, понадобится расширение Python Tools for Visual Studio. Все расширения официальные и бесплатные, их можно скачать с сайта. Для различных конкретных задач существуют разные сборки VS. Есть и продвинутые платные версии среды, но для начинающих и любителей будет достаточно бесплатной Community-версии.
Изначально IDE использовалась для Java, но сейчас она позволяет работать и с Python — для этого понадобится установить расширение PyDev. По функциональности Eclipse сравнима с VS, но, в отличие от нее, опенсорсная и полностью бесплатная, разрабатывается при поддержке сообщества энтузиастов.
Обе среды очень масштабные. Они позволяют одновременно писать код на Python, создавать интерфейс, работать с SQL Server, создавать проекты на нескольких языках программирования и т.д., но у новичков могут вызвать затруднения. Большинство инструментов нужны или профессиональным разработчикам, или тем, кто пользуется не одним языком.
В теории это платный редактор, но на практике необходимость платить выражается только в баннере в интерфейсе — ПО работает и без оплаты. Sublime легкий, удобный и быстрый, подходит для большинства платформ, хорошо поддерживается сообществом. Для него есть множество пакетов, которые позволяют расширять и дополнять поддержку синтаксиса.
Но Sublime Text — только редактор. В отличие от других двух программ из списка, он не умеет запускать и отлаживать код. Это плата за легковесность и возможность быстро работать в любой ОС.
Как и Visual Studio, редактор разработал Microsoft. Но его идея совсем другая — это небольшой и емкий инструмент. Для него существует множество плагинов, написанных разными разработчиками, он полностью бесплатный. Visual Studio Code можно настроить под любой язык — нужно скачать расширения, доступные в маркетплейсе внутри самого редактора.
VS Code не такой легкий, как Sublime Text. Он более функционален, в нем есть инструменты для запуска и отладки и интеграция с системой контроля версий. Но он весит больше и медленнее работает.
VS Code написан на фреймворке Electron. Это инструмент, который позволяет создавать приложения под разные ОС с помощью HTML, CSS и JavaScript. Это удобно, но из-за этого любое Electron-приложение, по сути, работает внутри специального браузера. Оно взаимодействует с системой напрямую, поэтому сильнее нагружает мощности компьютера, чем нативное (которое оптимизировано под конкретную ОС, поэтому может работать корректнее и быстрее).
- Новичкам, которые впервые работают в редакторе кода, можно посоветовать редакторы VS Code либо Atom. Если вам не требуются отладка и запуск, зато важна скорость, неплохим вариантом будет Sublime Text.
- Людям, которые уже работали с IDE и хотят большего, советуем обратить внимание на специализированные инструменты для конкретных задач вроде Spyder. А если нужна универсальная IDE, оптимальный вариант — PyCharm.
- Разработчикам на нескольких языках, которые работают над большими проектами, может подойти VS или Eclipse. Но если хотите что-то попроще и побыстрее, подойдут редакторы Atom и VS Code. Они могут поддерживать ряд языков одновременно, а дополнительные инструменты обеспечивают запуск и отладку.
Тестируйте разные инструменты, смотрите на их возможности и учитесь: так вы сами сможете найти среду для кодинга, которая вам ближе. А мы всегда готовы помочь вам в обучении.
Да, писать код на Python можно и в простом текстовом редакторе, однако использование специального редактора кода или IDE с дополнительным инструментарием может существенно улучшить продуктивность работы. Но редакторов и IDE много. Как выбрать? Как понять, какие функции важны? А какие из них важнее всего в вашем случае? Стоит ли платить за редактор или IDE?
Сегодня мы разберем все эти вопросы, рассматривая десятку самых лучших редакторов кода и IDE для Python (по состоянию на 2021 год).
Интегрированная среда разработки (Integrated Development Environment (IDE)) — программное обеспечение с очень обширным набором инструментов, использующихся для написания и тестирования кода. У каждой IDE свой арсенал самых полезных инструментов, но среди них обязательно будет текстовый редактор для написания кода, встроенные инструменты для автоматической компиляции и отладчик для обнаружения возможных ошибок.
Специализированные IDE могут содержать и более продвинутые инструменты, например, интеграции систем искусственного интеллекта.
Редакторы кода — это легковесные альтернативы IDE. В них есть текстовый редактор с автоматической подсветкой синтаксиса и простой отладчик для поиска багов, но нет сложных инструментов, которые можно найти в IDE.
Необходимый функционал в редакторах кода и IDE для работы с Python
- Подсветка синтаксиса. Автоматическая подсвета разных видов синтаксиса необходима для обеспечения наилучшей читаемости кода. Например, все имена переменных подсвечиваются белым, ключевые слова — оранжевым и т. д. Благодаря этому вы даже при беглом просмотре кода можете понять, что в нем происходит.
- Автоматическое форматирование кода. IDE и редакторы с поддержкой Python могут автоматически проставлять отступы, добавлять двоеточия, вставлять пропущенные закрывающие скобки, и все это — в соответствии со стилевыми правилами написания кода на Python. Это означает, что вам не придется тратить время на форматирование, да и на написание кода будет уходить меньше времени.
- Отладка. В разных инструментах разный подход к отладке, но будет хорошо иметь возможность по крайней мере пошагово отслеживать изменения в коде. В идеале вам нужен инструмент, который будет указывать на потенциальные ошибки и подсвечивать их еще до запуска кода.
- Автоматизация сборки. Ваш инструмент должен позволять писать код на Python и запускать его в том же окне. Копипаст кода из редактора во внешние компиляторы (для запуска) — это дополнительное время и лишняя возня.
- Сохранение и перезагрузка. Все IDE и редакторы кода должны иметь функцию сохранения и перезагрузки кода в сохраненном состоянии. В самых лучших инструментах помимо этого будет и контроль версий, чтобы при необходимости вы могли вернуться к предыдущим вариантам сборки.
10 самых лучших IDE и редакторов кода для Python
При выборе IDE или редактора приходится идти на компромиссы или в степени кастомизации, или в скорости этой самой кастомизации. В нашем списке инструменты построены от наименее до наиболее настраиваемых.
IDE и редакторы кода общего назначения
Atom (редактор кода)
Atom — это редактор, готовый «из коробки». Он имеет открытый исходный код и элегантный вид. Баланс производительности и кастомизации у него, как в Sublime, а настройка делается быстро. В основе редактора лежит фронтенд-фреймворк Electron — инструмент для создания настольных приложений с использованием JS, CSS и HTML.
В Atom есть встроенная поддержка любимых функций разработчиков: автоматического дополнения кода и поиска/вставки. Сам редактор разработан GitHub, так что не удивительно, что в нем есть встроенный функционал для интеграции с GitHub и Git.
Atom допускает применение пользовательских плагинов. Вместе с тем вы можете с легкостью подобрать и установить нужные плагины при помощи платформы с бесплатными пакетами. Эти плагины помогут вам расширить функционал редактора в соответствии с вашими нуждами.
Основной недостаток Atom — он не такой отполированный, как многие другие редакторы кода. Со времени первого выпуска выходило много обновлений, но редактор все равно периодически падает. К сожалению, с тех пор, как в 2018 году Microsoft приобрела GitHub, выход обновлений заметно замедлился.
Достоинства
- Можно использовать из коробки
- Легковесность и кастомизация при помощи плагинов
- Легкая интеграция плагинов
Недостатки
- Долго загружается при включении
- Есть проблемы с производительностью
- Запускается как JavaScript-процесс
- Некоторые необходимые функции (отладка, сборка кода и т. п.) добавляются при помощи плагинов.
Use Case
Atom вам подойдет, если вы работаете с несколькими языками и хотите иметь бесплатный и хорошо настраиваемый редактор кода, но не хотите тратить слишком много времени на тонкую настройку.
Codespaces (редактор кода)
Codespaces — новый облачный кроссплатформенный редактор кода, разработанный Microsoft и выпущенный в мае 2020 года. Пользоваться им можно в браузере.
В Codespaces вы найдете браузерный текстовый редактор, поддержку Git-репозиториев и расширений, а также встроенный интерфейс командной строки. Любопытно, что этим редактором можно пользоваться и офлайн — с обновлением после подключения к интернету.
Редактор совершенно бесплатный, но в будущем будет иметь платные опции.
Браузерный подход Codespaces позволяет работать где угодно, на любом устройстве с подключением к интернету. Это делает его прекрасным инструментом для командных проектов, потому что вам не придется передавать копии файлов или иметь какой-то общий инструмент.
Самый большой недостаток Codespaces — его новизна и неотшлифованность. Как и в любом новом проекте, в нем вы легко можете наткнуться на еще не исправленный баг.
Достоинства
- Хорош для командных проектов
- Можно использовать где угодно, на любом девайсе
- Не нужно устанавливать или настраивать
- Готовая интеграция с GitHub
Недостатки
- Новый и неотшлифованный
- Ограничение в 5 рабочих пространств
- Ограниченная кастомизация
Use Case
Codespaces подойдет разработчику, который часто участвует в коллективных проектах или выступает контрибьютором в проектах с открытым кодом и не слишком озабочен кастомизацией.
Visual Studio (IDE)
Visual Studio — IDE общего назначения, поддерживающая Python при помощи плагина Python Tools for Visual Studio (PTVS).
Эта IDE имеет богатый функционал, встроенную поддержку Git, встроенный терминал, полный набор инструментов для юнит-тестирования. Как и в Atom, есть маркетплейс с расширениями.
Visual Studio поставляется с Intellisense — одной из самых лучших на сегодняшний день систем автодополнения. При помощи плагинов можно добавить поддержку инструментов веб-разработки, таких как Flask или Django.
Есть бесплатная версия (Community) и платная (Business/Enterprise) — с дополнительными плюшками вроде поддержки пользователя и инструментов DevOps.
Visual Studio также имеет легковесный редактор кода — Visual Studio Code (VS Code).
Достоинства
- Богатый функционал из коробки
- Подходит для многих языков и платформ
- Легкое добавление плагинов
- Автодополнение Intellisense
Недостатки
- Дополнительные ресурсы — платные
- Слишком большая «зона покрытия», если вы планируете пользоваться только для Python-программирования
- Недоступность для ОС Linux
Use Case
Visual Studio подойдет разработчику, который регулярно меняет языки, хочет изучить один инструмент для всех своих программистских нужд и не слишком заинтересован в визуальных настройках.
Sublime Text 3 (редактор кода)
Sublime Text — очень отзывчивый редактор кода, которым пользуются тысячи разработчиков. Поддерживает разные версии Python и позволяет назначать версию для каждого отдельного проекта.
Sublime — практически непревзойденный лидер по части скорости: все файлы, за исключением самых больших, открываются мгновенно. Второе преимущество этого редактора — невероятная настраиваемость при помощи подключаемых пользовательских пакетов.
Эти плагины позволят вам поменять буквально что угодно в редакторе, от внешнего вида до поиска ошибок, дополнения кода, поддержки языка и т. д. С каждый днем появляется все больше плагинов, а это значит, что Sublime, вероятно, один из самых обновляемых инструментов на сегодняшний день.
Основной недостаток Sublime — его цена ($80).
Достоинства
- Высокая настраиваемость при помощи плагинов
- Несравненная скорость
- Отлично подходит для одновременной работы над несколькими проектами.
Недостатки
- Цена в $80
- В ванильной версии не хватает функционала
- Сложно добавлять плагины
Use Case
Этот редактор подойдет опытному программисту, который хочет иметь настраиваемый и при этом легковесный инструмент для всех своих любимых языков, а также не боится потратить некоторое время на настройку.
Vim (редактор кода)
Vim — классический редактор кода, созданный как преемник редактора Vi. Он по умолчанию установлен в Mac OS и Linux, также его можно скачать и установить в Windows. Этот редактор известен крутой кривой изучения и тем, что результаты все же стоят затраченных усилий. Он по-прежнему обновляется, но кардинальные изменения происходят крайне редко.
По умолчанию Vim практически не имеет пользовательского интерфейса, пользоваться им нужно в командной строке. Это означает, что при помощи VIMscript вы сможете кастомизировать в этом инструменте практически что угодно, от внешнего вида до сочетаний клавиш. Благодаря этой особенности, Vim — потенциально самый настраиваемый и производительный редактор кода.
Научившись пользоваться Vim, вы получите очень эффективный инструмент, но переход к работе исключительно с клавиатурой будет нелегким (если только вы не опытный пользователь Vi). Настроить что-то при помощи VIMscript тоже непросто, потому что для этого фактически нужно создать отдельный программистский проект еще до начала работы с редактором!
Достоинства
- Использование в работе исключительно клавиатуры очень повышает скорость программирования (как только все оптимизируете)
- Можно запрограммировать собственные сочетания клавиш
- Полная кастомизация при помощи VIMscripts
- Доступен в Mac и Linux по умолчанию
Недостатки
- Общеизвестно, что новичкам трудно овладеть этим инструментом
- Кастомизация — сложный процесс
Use Case
Этот редактор прекрасно подойдет тем, кто уже умеет пользоваться Vi и привык все делать при помощи клавиатуры. Также Vim — прекрасный выбор для разработчика, который хочет иметь самый настраиваемый и эффективный редактор и готов ради этого примириться с крутой кривой изучения.
IDE, заточенные под Python
IDLE (IDE)
IDLE — IDE, устанавливаемая с Python по умолчанию. В ней есть весь основной инструментарий: окно с оболочкой Python, автодополнение, подсветка синтаксиса, умные отступы и базовый отладчик.
IDLE — IDE с ограниченным функционалом, созданная для людей, изучающих программирование. Она легковесная и не слишком настраиваемая — чтобы не шокировать неподготовленных новичков. Но когда вы перейдете к более крупным проектам, вы заметите недостатки в производительности IDLE и нехватку нужных функций.
В IDLE также нет поддержки плагинов, а значит, вы не сможете расширить ее функционал, чтобы подогнать под свои нужды.
Достоинства
- Поставляется с Python
- Проста в освоении и использовании
- Имеет все самые необходимые инструменты
Недостатки
- Плохая производительность в крупных проектах
- Не настраивается визуально
- Нельзя добавлять функционал
Use Case
Если вы новичок в разработке на Python, хотите попрактиковаться на простеньких проектах и при этом не возиться с настройками, IDLE вам подойдет.
Thonny (IDE)
Thonny — бесплатная IDE, спроектированная в качестве идеальной среды для начинающих. Пользовательский интерфейс прост. Встроены подсветка синтаксиса, автодополнение, отладчик и автоформатирование.
В этой IDE также есть уникальные функции для начинающих, например, трекер для значений переменных, находящийся рядом с основным редактором. Все опции устанавливаются через меню, а не путем правки конфигурационных файлов: это позволяет начинающим программистам сосредоточиться на написании кода. Даже установка плагинов оптимизирована для начинающих при помощи простого менеджера пакетов.
Недостаток Thonny в отсутствии продвинутых функций, которые есть в других IDE, например в PyCharm. Также нет специализированных инструментов для специфических приложений, доступных в Spyder. Из-за этого вам в конечном итоге придется перейти на другую IDE, как только ваши программы станут более сложными.
Достоинства
- Простой, не отвлекающий пользовательский интерфейс
- Настройка через меню, а не через файлы
- Основные функции оптимизированы для начинающих
Недостатки
- Нет специализированных инструментов
- Производительность не такая хорошая, как в более продвинутых IDE
Use Case
Подойдет для начинающих Python-разработчиков, которые хотят больше функций, чем в IDLE, но еще не готовы перейти к более сложным IDE.
Spyder (IDE)
Spyder — IDE Python, созданная специально для разработчиков, занимающихся наукой о данных и машинным обучением. Она входит в Anaconda наряду с популярными библиотеками Python ( Scikit-learn, Numpy, Matplotlib, Scipy и Pandas).
Spyder имеет автодополнение, мощный отладчик, оболочку iPython и ограниченные инструменты для визуализации данных.
В Spyder меньше функций, чем, скажем, в PyDev. Эта IDE фокусируется скорее на предоставлении простого, легкого в использовании инструментария для не-разработчиков.
Достоинства
- Простая установка и интеграция с основными библиотеками
- Инструменты для работы с data science
- Мощные инструменты отладки для помощи не-разработчикам
Недостатки
- Функционал, не связанный с data science, ограничен
- Мало опций для кастомизации
Use Case
Если вы занимаетесь исключительно наукой о данных или машинным обучением и хотите IDE, подогнанную под ваши нужды, Spyder будет прекрасным выбором.
PyDev (IDE)
PyDev — это IDE-плагин для Eclipse, популярной Java IDE для open source разработки. Поставляется со всеми встроенными элементами управления Eclipse и добавляет поддержку автодополнения, интерактивной консоли и отладки для Python.
Это одна из немногих IDE, имеющих поддержку Jython и Cython. Также есть интеграция с Django с его инструментами для веб-разработки.
Хотя PyDev проигрывает другим IDE в плане функциональности и кастомизации, с ней будет очень легко начать работать тем, кто уже знаком с Eclipse. Правда, если вы не знакомы с Eclipse, кривая изучения будет довольно крутой.
Достоинства
- Эту IDE легко освоят пользователи Eclipse
- Оптимизация для веб-разработки на Django
- Поддержка для Jython и Cython
Недостатки
- Ограниченный функционал, поскольку это все-таки простой плагин
- Освоить Eclipse непросто
Use Case
PyDev подойдет разработчику, который пользуется Python как вторичным языком для веб-разработки или участия в open-source и имеет опыт работы с Eclipse.
PyCharm (IDE)
PyCharm — одна из самых популярных кроссплатформенных IDE для Python, созданная и регулярно обновляемая солидной компанией JetBrains.
Эта IDE уже из коробки имеет все самые лучшие инструменты: контроль версий, автодополнение, подсветку ошибок, рефакторинг кода и т. д. В отличие от других сред разработки, в PyCharm можно начинать писать код сразу же после загрузки.
Часто отмечается особая полезность предлагаемого PyCharm кода (по сравнению с другими IDE).
Бесплатная версия PyCharm более легковесна и оптимизирована для data science. А платная ($100-200 в год) включает инструменты для веб-разработки и Python-приложения.
Кроме того, для работы PyCharm требуется много VRAM. Использовать ее на старых машинах не получится.
Достоинства
- Уже установлен весь основной продвинутый функционал
- Не требуется настройка
- Инструментарий для Python-разработки любого рода
Недостатки
- «Кусачая» цена версии с полным функционалом
- Производительность очень зависит от возможностей вашей машины
- Ограниченная кастомизация
Use Case
PyCharm в полной версии будет прекрасным выбором для разработчика, который согласен заплатить за немедленный доступ к самым лучшим инструментам, чтобы не возиться с настройкой или установкой плагинов.
Также стоит упомянуть
- Emacs. Можно использовать для разработки на Python, но это довольно старый инструмент, из-за чего там нет более современных функций.
- Jupyter Notebooks. Простой инструмент, оптимизированный для data science и графических представлений, но уж слишком специализированный, чтобы войти в наш список.
У вас есть свой любимый редактор для программирования на Python, не вошедший в наш список? Предлагайте в комментариях!