I'm about to start a new job where the coding practices are heavily centered around TDD and refactoring, and whose primary development language is Python. I come from the Java world, and have been a confident user of Eclipse for a good, long time. When not working in Java, I use emacs.
Python on Linux, Mac OS X, and other OS. It's best to use Python 2.7. Although Python 3.x is becoming more popular, this course is designed for Python 2.6 or later. Execute Bit (optional). The content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the Apache 2.0 License.
- How to run a Python script¶. Your best way to get started with Python on Mac OS X is through the IDLE integrated development environment, see section The IDE and use the Help menu when the IDE is running.
- Python is also usable as an extension language for applications that need a programmable interface.The Python implementation is portable: it runs on many brands of UNIX, on Windows, DOS, OS/2, Mac.
I'm looking for an IDE for Python that will give me a lot of the capabilities I've grown used to with Eclipse, not only for refactoring but in terms of code completion, project management, SCM integration (currently CVS, but likely to switch to git one of these days) et al.
What IDE should I use?
Dave Hillierclosed as off-topic by l4mpi, jb., Dismissile, Afzaal Ahmad Zeeshan, LarsTechMay 21 '14 at 14:07
This question appears to be off-topic. The users who voted to close gave this specific reason:
- 'Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.' – l4mpi, jb., Dismissile
22 Answers
Have tried many different (Kate, Eclipse, Scite, Vim, Komodo): each one have some glitches, either limited functions, or slow and unresponsive. Final choice after many years: Emacs + ropemacs + flymake. Rope project file open dialog is extremely quick. Rope refactoring and code assist functions are super helpful. Flymake shows syntax mistakes. Emacs is the most configurable editor. I am very happy with this config. Python related part of config is here: public.halogen-dg.com browser/alex-emacs-settings/configs/cfg_python.el
My 2 pennies, check out PyCharmhttp://www.jetbrains.com/pycharm/
(also multi-platform)
TimTimI use TextMate for all my Python programming needs. It's not an IDE per se, but it does a lot of stuff that an IDE does (without all the cruft of an IDE). It has syntax highlighting, code folding, integration with various SCMs through the use of additional bundles (I know it supports SVN, Git, Mercurial, Darcs, and probably a few others). It's also quite extensible and customizable (again, through the use of bundles). It also has a basic concept of projects. One place where it doesn't shine, though, is in code completion; some bundles have limited support for code completion, but it's generally not as amazing as that of most language-specific IDEs. Given how awesome TextMate is, though, I don't know sacrificing that. TextMate's definitely made me much more productive.
mipadimipadiPydev for Eclipse, as others have mentioned, is good.
Netbeans has a beta Python plugin that is a little rough around the edges, but could turn into something really cool.
Additionally there is a long list of programming centric text editors for the mac, that may or may not fit your needs.
- Textmate - costs money, people love this program, but I haven't used it enough to see what all the fuss is about.
- Jedit - Java based text editor, has some nice features, but the startup time isn't great (due to Java).
- CarbonEmacs - Decent Emacs port.
- AquaEmacs - Better Emacs port.
- TextWrangler - Lite, free (as in beer) verision of BBEdit.
- BBEdit - The old guard. The defacto editor before Textmate stole its limelight. Expensive.
- Smultron - Very nice editor, the UI is similar to Textmate.
- Idle - Python's own little editor, has some nice features, but also some major problems. I've personally found it too unstable for my usage.
- Sublime Text - This is really sweet text editor that has some surprisingly good Python support.
- Pycharm - Another solid full on IDE for Python.
Eclipse with Pydev works best for me on any platform.
ismailismailI really enjoy using PyCharm. http://www.jetbrains.com/pycharm/
I usually use either komodo edit or aquamacs with ropemacs. Although I should warn you, IDE features won't be what you're used to if you're coming from a Java or C# background. I personally find that powerful IDEs get in my way more than they help.
UPDATE: I should also point out that if you have the money Komodo IDE is worth it. It's the paid version of Komodo Edit.
Jason BakerJason BakerI like Spyder, it has many tools, such as profiling, intelligent indentation helper and a good autocompletion support
linellolinelloIf you have a budget for your IDE, you should give Wingware Professional a try, see wingware.com .
Alex MartelliAlex MartelliI've used WingIDE and have been very happy. Intellisense is pretty good, some other things are a bit wacky but overall it's a very productive tool
jeanjeanIf you are looking for an interactive environment and not needing to code modules, I would suggest IPython. Though this is developed with scientists/statisticians in mind, it will run just as well without any of the scientific packages installed. The features are powerful, with code completion, integrated help, integrated debugging, etc., and it functions as a notebook with Markdown and MathJax integration. By far the best choice for those that need powerful features without wishing to load megabytes of GUI into RAM--since it is browser based, it is used in your always loaded chrome/safari instance. ;-)
DallasDallasEclipse PyDev plugin.
jbaskojbaskosince you are familiar with Eclipse maybe you are interested in Pydev
KonstantinosKonstantinosPython support on netbeans is surprisingly good, and comes with most of the features you're looking for.
TextMate or Panic's Coda. NetBeans works very well, if you want a full-blown kitchen sink IDE.
I've searched on Google for an app like this for a while, and I've found only options with heavy and ugly interfaces.
Then I opened Mac App Store and found CodeRunner. Very nice and clean interface. Support many languages like Python, Lua, Perl, Ruby, Javascript, etc. The price is U$10, but it's worth it!
Jan K. S.Jan K. S.'Which editor/IDE for ...?' is a longstanding way to start a 'My dog is too prettier than yours!' slapfest. Nowadays most editors from vim
upwards can be used, there are multiple good alternatives, and even IDEs that started as C or Java tools work pretty well with Python and other dynamic languages.
That said, having tried a bunch of IDEs (Eclipse, NetBeans, XCode, Komodo, PyCharm, ...), I am a fan of ActiveState's Komodo IDE. I use it on Mac OS X primarily, though I've used it for years on Windows as well. The one license follows you to any platform.
Komodo is well-integrated with popular ActiveState builds of the languages themselves (esp. for Windows), works well with the fabulous (and Pythonic) Mercurial change management system (among others), and has good-to-excellent abilities for core tasks like code editing, syntax coloring, code completion, real-time syntax checking, and visual debugging. It is a little weak when it comes to pre-integrated refactoring and code-check tools (e.g. rope, pylint), but it is extensible and has a good facility for integrating external and custom tools.
Some of the things I like about Komodo go beyond the write-run-debug loop. ActiveState has long supported the development community (e.g. with free language builds, package repositories, a recipes site, ...), since before dynamic languages were the trend. The base Komodo Edit editor is free and open source, an extension of Mozilla's Firefox technologies. And Komodo is multi-lingual. I never end up doing just Python, just Perl, or just whatever. Komodo works with the core language (Python, Perl, Ruby, PHP, JavaScript) alongside supporting languages (XML, XSLT, SQL, X/HTML, CSS), non-dynamic languages (Java, C, etc.), and helpers (Makefiles, INI and config files, shell scripts, custom little languages, etc.) Others can do that too, but Komodo puts them all in once place, ready to go. It's a Swiss Army Knife for dynamic languages. (This is contra PyCharm, e.g., which is great itself, but I'd need like a half-dozen of JetBrains' individual IDEs to cover all the things I do).
Komodo IDE is by no means perfect, and editors/IDEs are the ultimate YMMV choice. But I am regularly delighted to use it, and every year I re-up my support subscription quite happily. Indeed, I just remembered! That's coming up this month. Credit card: Out. I have no commercial connection to ActiveState--just a happy customer.
Jonathan EuniceJonathan EuniceYou might want to look into Eclim, an Eclipse server that allows you to use Eclipse functionality from within your favorite text editor. For python-related functionality, it uses Rope, PyFlakes, and PyLint under the hood.
mindthiefmindthiefI've been using an Evaluation copy of Sublime Text
. What's good is it doesn't really expire.
It's been good so far and was really easy to get started with.
Sagar HatekarSagar HatekarI may be a little late for this, but I would recommend Aptana Studio 3.x . Its a based on eclipse and has everything ready-to-go for python
. It has very good support for DJango, HTML5 and JQuery
. For me its a perfect web-development tool. I do HTML5 and Android
development too, this way I do not need to keep switching different IDE's. It my all-in-one solution.
Note: you need a good amount of RAM for this to be snazzy !! 4+ GB is awesome !!
FreakyuserVisual Studio Code + Official Python Plugin
Here you see an overview of its current Python features:
Chocolat
It's lightweight and offers Code Completion. Costs money.
EDIT:Apparently Chocolat was an interesting option in 2013 but since then many others came up and development stalled. Nowadays I recommend Visual Studio Code + Python Plugin.
BijanBijanNot the answer you're looking for? Browse other questions tagged pythonmacoside or ask your own question.
Be More Productive
Save time while PyCharm takes care of the routine. Focus on the bigger things and embrace the keyboard-centric approach to get the most of PyCharm's many productivity features.
Get Smart Assistance
PyCharm knows everything about your code. Rely on it for intelligent code completion, on-the-fly error checking and quick-fixes, easy project navigation, and much more.
Boost Code Quality
Write neat and maintainable code while the IDE helps you keep control of the quality with PEP8 checks, testing assistance, smart refactorings, and a host of inspections.
Simply All You Need
PyCharm is designed by programmers, for programmers, to provide all the tools you need for productive Python development.
Intelligent Python Assistance
PyCharm provides smart code completion, code inspections, on-the-fly error highlighting and quick-fixes, along with automated code refactorings and rich navigation capabilities.
Web Development Frameworks
PyCharm offers great framework-specific support for modern web development frameworks such as Django, Flask, Google App Engine, Pyramid, and web2py.
Scientific Tools
PyCharm integrates with IPython Notebook, has an interactive Python console, and supports Anaconda as well as multiple scientific packages including matplotlib and NumPy.
Cross-technology Development
In addition to Python, PyCharm supports JavaScript, CoffeeScript, TypeScript, Cython, SQL, HTML/CSS, template languages, AngularJS, Node.js, and more.
Remote Development Capabilities
Run, debug, test, and deploy applications on remote hosts or virtual machines, with remote interpreters, an integrated ssh terminal, and Docker and Vagrant integration.
Built-in Developer Tools
A huge collection of tools out of the box: an integrated debugger and test runner; Python profiler; a built-in terminal; and integration with major VCS and built-in Database Tools.
Choose |
Intelligent Python editor |
Graphical debugger and test runner |
Navigation and Refactorings |
Code inspections |
VCS support |
Scientific tools |
Web development |
Python web frameworks |
Python Profiler |
Remote development capabilities |
Database & SQL support |
PyCharm Educational Edition
Have you ever wanted to learn programming with Python? Or maybe you're using Python to teach programming?
Then we have the perfect tool for you.
Michael Kennedy
Host, Talk Python to Me Podcast
Founder Talk Python Training
I'm in the unique position of asking over 100 industry experts the following question on my Talk Python To Me podcast. 'When you write some Python code, what editor do you open up?' While the answers vary, it is frequently PyCharm. The reasons the guests give are usually the same reasons I've been a PyCharm advocate for years.
PyCharm deeply understands your project, not just individual files
Refactoring is a breeze across an entire project
The built-in SQL tooling is amazing
Autocomplete works better than any other editor, by far
That's just a few reasons I open PyCharm daily to build my web properties and manage the software that runs my business.
Cory Althoff
Author of The Self-Taught Programmer: The Definitive Guide to Programming Professionally
PyCharm is the best IDE I've ever used. With PyCharm, you can access the command line, connect to a database, create a virtual environment, and manage your version control system all in one place, saving time by avoiding constantly switching between windows. I couldn't imagine going back to programming without PyCharm's local history feature and debugger. Add the rest of its convenient shortcuts and features, and you have the perfect IDE.
Download Python 3 For Mac
Jupyter Notebooks
Jupyter Notebooks in PyCharm got better: run all cells with a single click, configure your server more precisely, see your variables inline, better looking code, and much more.
Other Languages
Text Editor For Mac
Do you work on projects where code in a different language sneaks into your project? PyCharm will now highlight the syntax of Windows .bat files, C#, C++, Groovy, Lua, Makefiles, and more.
Python 3.8
PyCharm 2019.2 comes with initial support for the newest version of Python. For example positional-only parameters and variable assignment within expressions are already supported.