Spyder Python is an open source IDE for Python, best suited for scientific python development. It is a lightweight software, written in Python itself and available as free to use under MIT license. It is a lightweight software, written in Python itself and available as free to use under MIT license. The Best Choice of good Python IDE and editor can easily configure the working environment as a matter of fact leading to better productivity. We have shared 13 Best IDE and editors for Python. Why The Best Python Ide. Vim is a command line editor and hence can be used for remote development. Replacing all string occurrences in 100MB+ files is quick and easy. Hi guys, first post here so go easy. I need to learn Python quickly as it appears some limited coding is required in my new job. I believe the company uses Eclipse but for the life of me I cannot get this working on my macbook and setup with Python.
Python Editor For Mac
Python is such a popular language that most 'programmers' text editors' have at least rudimentary support, including syntax highlighting. But there are several editors that have especially good support. I've tested the following editors, presented in alphabetical order, as most are fine choices:
Emacs
Emacs is not really a single text editor; it's more a family of text editors that is almost 40 years old, starting with TECO EMACS, which was a set of text-editing macros implemented by Richard Stallman using the TECO editor/programming language, and continuing to be developed today with GNU Emacs, also created by Stallman. There have been other Emacsen, including Gosling Emacs and most prominently XEmacs, but they have all been mostly supplanted by GNU Emacs. It runs on Windows. Mac OS X, Linux, BSD, Haiku, Minix, Android — more or less everywhere.
Emacs' claim to fame is its extensibility, which has allowed its users to create editing modes for almost everything, really. Emacs has modes for every major programming language and most minor ones; it can serve as a newsreader, an email client, a web browser, terminal emulator, image viewer, and blogging client; it has a package manager, Bible-study tools, a web server — you begin to see the point. Emacs is huge for a text editor, but it has been called an operating system for a reason.
Python has not been neglected by Emacs extenders;
python-mode
is included in the base distribution, which allows editing of Python code with syntax highlighting; automatic indentation; descriptions of keywords, modules, classes, and more on the fly; snippet insertion; an interactive Python REPL in a split window with the ability to do partial recompilation; code folding; and more. With the addition ofanything-ipython
, available using the package manager, powerful syntax completion is easily available, including any modules that you import. There are also several packages for integrating unit testing, virtualenv, pylint, on-the-fly error indication, and more. With thepymacs
package, you can even use Python to extend Emacs itself, though I don't recommend it if you think your extensions might ever be useful to anyone else.The downside of Emacs is its insane learning curve. Its model of text is different than anything you're used to, its keyboard shortcuts are nothing like today's de facto standard, and its look and feel is straight out of 1985. It does, however, have a tutorial built in — read the opening screen carefully to see how to open it — and there's much more documentation accessible on the fly, once you've learned to use it. And once you've learned to use it, you can use it to do
anything.
anything.
In short, to be effective, Emacs must be a way of life — but it's a good life if you stick to it. This article was written with Emacs; everything I finish is written using Emacs.
Geany
Geany is a cross-platform programmers' text editor that supplies the very most basic features of an IDE. It has Python syntax highlighting; rough auto-indentation, though no auto-deindentation after
return
and break
statements; reasonable code navigation; code folding; stack trace parsing to locate errors; and, with an extra plugin, some decent snippets — and that's about it.Geany does what it does well, but what it can't do well, it doesn't do at all. Its main advantage is that it satisfies the minimum requirements for a serious Python programmer's editor while having a gentle learning curve. If you don't have an editor to which you're attached, and you don't want to put the time into learning Emacs or Vim, Geany is not a bad choice.
Komodo Edit
Komodo Edit is an editor/light IDE comprised of the free subset of ActiveState's Komodo IDE. The good points:
- Auto-indentation works well
- Project and code navigation is effective
- Code folding works well
- Auto-completion works well within a project
- Snippets are excellent and well-handled
There are some serious drawbacks, however:
- Auto-completion does not work for non-standard modules
- There is no Python console
- There is no debugging or even built-in support for running your scripts
- Project handling is low-functioning and opaque
The functionality available does not justify the IDE-like interface overhead.
Notepad++
Notepad++ is at base a decent text editor, but it's barely a programmer's editor, at least for Python. It has acceptable syntax highlighting, but that's about all it has to offer. It has word- and function-level auto-completion based on the current file, which is almost no help; nominal auto-indentation which does not function at all for Python; and that's all, frankly. Its only recommendations are that it's easy to learn and better than its namesake.
Unless you're tied to Notepad++ for some reason, Geany or one of the other editors recommended here is probably a better choice.
SciTE
SciTE was originally a demonstration application for the
Scintilla source-code editing component, but it got out of hand and turned into a real text editor scriptable in Lua. Despite its history, it's actually quite nice, and does most of the text-editing work Geany above does; what it lacks is the project- and file-navigation functionality. It is capable of very rough auto-completion using token files, if that's useful to you; it isn't to me.
Scintilla source-code editing component, but it got out of hand and turned into a real text editor scriptable in Lua. Despite its history, it's actually quite nice, and does most of the text-editing work Geany above does; what it lacks is the project- and file-navigation functionality. It is capable of very rough auto-completion using token files, if that's useful to you; it isn't to me.
Python Code Editor For Mac
SciTE has two advantages: it's light and fast, and it's easy to learn. Like Geany, it is a minimum editor for serious Python programmers, and if that's all you want, it might be a good choice.
SPE (Stani's Python Editor)
SPE, which is about midway between a dedicated Python text editor and a Python IDE, looks very promising but ultimately fails to deliver an acceptable editing experience. The basic editor is effective enough and immediately usable, and it provides a number of good tools, including a well-integrated Python console, an effective search panel, and file browser.
The website for SPE promises syntax highlighting, auto-completion, auto-indentation, syntax checking, wxPython GUI designer, and integrated debugger, but some features are more successful than others. I tested the latest stable release, 0.8.4.h, and while syntax highlighting, auto-indentation, syntax checking, and the GUI designer all functioned acceptably, auto-completion was unusably bad; outside of the most common parts of the standard library, suggestions seemed to be simply pulled from a list of every token in the file. The integrated debugger completely failed to work; the editor crashed hard every time I tried to invoke it.
While SPE looks like a good start at a Python editor or proto-IDE, the last stable release was in 2008, so it looks decreasingly likely that its initial promise will come to fruition.
Sublime Text
Sublime Text is a seriously nice programmers' editor, and it has the advantage of being attractive — like, Mac-level pretty. It has a remarkable selection of powerful features, including multiple cursors (allowing the same edit to be made in multiple places at once), a flexible 'goto anything' interface, a command palette that allows easy keyboard-based access to all of Sublime Text's functionality, split-screen editing, distraction-free mode, and two kinds of customization: a relatively simple one using JSON, and a more advanced plugin API using Python.
All of these capabilities are attractive, and they are almost enough to recommend the editor by themselves. However, there are a number of flaws. Auto-indentation exists, but does not handle much beyond adding a level of indentation after each colon. Auto-completion is available via the SublimeCodeIntel or SublimeRope plugins, but is not very advanced in either case. The great part is that since the editor is so extensible, you can fix these problems if you wish.
I can't fully recommend Sublime Text, based on the poor performance of the plugins in my test, but the editor is so excellent that if you're not a frequent user of auto-completion, you might consider it. I could see using this as my primary editor for Python if I weren't otherwise attached.
Vim
Vi is the anti-Emacs, and also an excellent text editor. Created in 1976, it is old in software terms, almost as old as Emacs. It is light, fast, and is almost always installed by default in Linux and other Unixes. Vim — vi improved — is the most common implementation of vi today, though there are others. Vim or elvis, another clone, is available on Windows, Mac OS X, BSDs, Minix, Haiku, and most other operating systems. Vim has extensions to allow it to edit almost any programming language, no matter how obscure.
Vim has syntax highlighting, code folding, and automatic indentation built in, and with some modeline comments in each source file or a few additions to its settings file,
Turning Vim into a modern Python IDE).
.vimrc
, it can ensure that you don't mix spaces and tabs. With rope-vim
, python-mode
, or jedi-vim
it can do auto-completion, including non-system modules, and there are a host of modules that let it do almost anything with Python code that is listed for Emacs above. Vim is also extensible using a built-in scripting language, VimScript, though in general Vim users have refrained from the exuberant extension characteristic of Emacs. (I'm no vim expert, but John Anderson is; for advanced tips on setting up vi for Python, see his article onTurning Vim into a modern Python IDE).
Vim, like Emacs, has a learning curve like a smack in the face — maybe even steeper than Emacs, since it is a modal editor, in which different categories of operations, such as navigation and editing, are active at different times. Vim has excellent help built in, accessed by entering
:help
; it includes reference guides and a tutorial.Vim, in fine, is another text-editor-as-lifestyle. Most committed vim users use vim for almost all their editing.
Editors: Summary
There are a lot of decent editors for Python, but a few stand out: there's the lifestyle editors, Emacs and Vim, both of which are powerful but have vicious learning curves. There's SciTE and Geany, which, like any number of similar editors, are a good basic fit for someone who wants to get into Python programming without putting a lot of effort into their editor. And finally, there's Sublime Text, which, while flawed, has a number of unique features and looks poised to become for this generation what Emacs and Vim have been to previous ones: their own editor for everything.
Next, we'll discuss IDEs: Best IDEs for Python Development.
Looking for a specific release?
Python releases by version number:
- Python 3.7.4July 8, 2019 DownloadRelease Notes
- Python 3.6.9July 2, 2019 DownloadRelease Notes
- Python 3.7.3March 25, 2019 DownloadRelease Notes
- Python 3.4.10March 18, 2019 DownloadRelease Notes
- Python 3.5.7March 18, 2019 DownloadRelease Notes
- Python 2.7.16March 4, 2019 DownloadRelease Notes
- Python 3.7.2Dec. 24, 2018 DownloadRelease Notes
- Python 3.6.8Dec. 24, 2018 DownloadRelease Notes
- Python 3.7.1Oct. 20, 2018 DownloadRelease Notes
- Python 3.6.7Oct. 20, 2018 DownloadRelease Notes
- Python 3.5.6Aug. 2, 2018 DownloadRelease Notes
- Python 3.4.9Aug. 2, 2018 DownloadRelease Notes
- Python 3.7.0June 27, 2018 DownloadRelease Notes
- Python 3.6.6June 27, 2018 DownloadRelease Notes
- Python 2.7.15May 1, 2018 DownloadRelease Notes
- Python 3.6.5March 28, 2018 DownloadRelease Notes
- Python 3.4.8Feb. 5, 2018 DownloadRelease Notes
- Python 3.5.5Feb. 5, 2018 DownloadRelease Notes
- Python 3.6.4Dec. 19, 2017 DownloadRelease Notes
- Python 3.6.3Oct. 3, 2017 DownloadRelease Notes
- Python 3.3.7Sept. 19, 2017 DownloadRelease Notes
- Python 2.7.14Sept. 16, 2017 DownloadRelease Notes
- Python 3.4.7Aug. 9, 2017 DownloadRelease Notes
- Python 3.5.4Aug. 8, 2017 DownloadRelease Notes
- Python 3.6.2July 17, 2017 DownloadRelease Notes
- Python 3.6.1March 21, 2017 DownloadRelease Notes
- Python 3.4.6Jan. 17, 2017 DownloadRelease Notes
- Python 3.5.3Jan. 17, 2017 DownloadRelease Notes
- Python 3.6.0Dec. 23, 2016 DownloadRelease Notes
- Python 2.7.13Dec. 17, 2016 DownloadRelease Notes
- Python 3.4.5June 27, 2016 DownloadRelease Notes
- Python 3.5.2June 27, 2016 DownloadRelease Notes
- Python 2.7.12June 25, 2016 DownloadRelease Notes
- Python 3.4.4Dec. 21, 2015 DownloadRelease Notes
- Python 3.5.1Dec. 7, 2015 DownloadRelease Notes
- Python 2.7.11Dec. 5, 2015 DownloadRelease Notes
- Python 3.5.0Sept. 13, 2015 DownloadRelease Notes
- Python 2.7.10May 23, 2015 DownloadRelease Notes
- Python 3.4.3Feb. 25, 2015 DownloadRelease Notes
- Python 2.7.9Dec. 10, 2014 DownloadRelease Notes
- Python 3.4.2Oct. 13, 2014 DownloadRelease Notes
- Python 3.3.6Oct. 12, 2014 DownloadRelease Notes
- Python 3.2.6Oct. 12, 2014 DownloadRelease Notes
- Python 2.7.8July 2, 2014 DownloadRelease Notes
- Python 2.7.7June 1, 2014 DownloadRelease Notes
- Python 3.4.1May 19, 2014 DownloadRelease Notes
- Python 3.4.0March 17, 2014 DownloadRelease Notes
- Python 3.3.5March 9, 2014 DownloadRelease Notes
- Python 3.3.4Feb. 9, 2014 DownloadRelease Notes
- Python 3.3.3Nov. 17, 2013 DownloadRelease Notes
- Python 2.7.6Nov. 10, 2013 DownloadRelease Notes
- Python 2.6.9Oct. 29, 2013 DownloadRelease Notes
- Python 3.3.2May 15, 2013 DownloadRelease Notes
- Python 3.2.5May 15, 2013 DownloadRelease Notes
- Python 2.7.5May 12, 2013 DownloadRelease Notes
- Python 3.2.4April 6, 2013 DownloadRelease Notes
- Python 2.7.4April 6, 2013 DownloadRelease Notes
- Python 3.3.1April 6, 2013 DownloadRelease Notes
- Python 3.3.0Sept. 29, 2012 DownloadRelease Notes
- Python 2.6.8April 10, 2012 DownloadRelease Notes
- Python 3.2.3April 10, 2012 DownloadRelease Notes
- Python 2.7.3April 9, 2012 DownloadRelease Notes
- Python 3.1.5April 9, 2012 DownloadRelease Notes
- Python 3.2.2Sept. 3, 2011 DownloadRelease Notes
- Python 3.2.1July 9, 2011 DownloadRelease Notes
- Python 2.7.2June 11, 2011 DownloadRelease Notes
- Python 3.1.4June 11, 2011 DownloadRelease Notes
- Python 2.6.7June 3, 2011 DownloadRelease Notes
- Python 2.5.6May 26, 2011 DownloadRelease Notes
- Python 3.2.0Feb. 20, 2011 DownloadRelease Notes
- Python 2.7.1Nov. 27, 2010 DownloadRelease Notes
- Python 3.1.3Nov. 27, 2010 DownloadRelease Notes
- Python 2.6.6Aug. 24, 2010 DownloadRelease Notes
- Python 2.7.0July 3, 2010 DownloadRelease Notes
- Python 3.1.2March 20, 2010 DownloadRelease Notes
- Python 2.6.5March 18, 2010 DownloadRelease Notes
- Python 2.5.5Jan. 31, 2010 DownloadRelease Notes
- Python 2.6.4Oct. 26, 2009 DownloadRelease Notes
- Python 2.6.3Oct. 2, 2009 DownloadRelease Notes
- Python 3.1.1Aug. 17, 2009 DownloadRelease Notes
- Python 3.1.0June 26, 2009 DownloadRelease Notes
- Python 2.6.2April 14, 2009 DownloadRelease Notes
- Python 3.0.1Feb. 13, 2009 DownloadRelease Notes
- Python 2.5.4Dec. 23, 2008 DownloadRelease Notes
- Python 2.4.6Dec. 19, 2008 DownloadRelease Notes
- Python 2.5.3Dec. 19, 2008 DownloadRelease Notes
- Python 2.6.1Dec. 4, 2008 DownloadRelease Notes
- Python 3.0.0Dec. 3, 2008 DownloadRelease Notes
- Python 2.6.0Oct. 2, 2008 DownloadRelease Notes
- Python 2.4.5March 11, 2008 DownloadRelease Notes
- Python 2.3.7March 11, 2008 DownloadRelease Notes
- Python 2.5.2Feb. 21, 2008 DownloadRelease Notes
- Python 2.5.1April 19, 2007 DownloadRelease Notes
- Python 2.3.6Nov. 1, 2006 DownloadRelease Notes
- Python 2.4.4Oct. 18, 2006 DownloadRelease Notes
- Python 2.5.0Sept. 19, 2006 DownloadRelease Notes
- Python 2.4.3April 15, 2006 DownloadRelease Notes
- Python 2.4.2Sept. 27, 2005 DownloadRelease Notes
- Python 2.4.1March 30, 2005 DownloadRelease Notes
- Python 2.3.5Feb. 8, 2005 DownloadRelease Notes
- Python 2.4.0Nov. 30, 2004 DownloadRelease Notes
- Python 2.3.4May 27, 2004 DownloadRelease Notes
- Python 2.3.3Dec. 19, 2003 DownloadRelease Notes
- Python 2.3.2Oct. 3, 2003 DownloadRelease Notes
- Python 2.3.1Sept. 23, 2003 DownloadRelease Notes
- Python 2.3.0July 29, 2003 DownloadRelease Notes
- Python 2.2.3May 30, 2003 DownloadRelease Notes
- Python 2.2.2Oct. 14, 2002 DownloadRelease Notes
- Python 2.2.1April 10, 2002 DownloadRelease Notes
- Python 2.1.3April 9, 2002 DownloadRelease Notes
- Python 2.2.0Dec. 21, 2001 DownloadRelease Notes
- Python 2.0.1June 22, 2001 DownloadRelease Notes
View older releases
Licenses
All Python releases are Open Source. Historically, most, but not all, Python releases have also been GPL-compatible. The Licenses page details GPL-compatibility and Terms and Conditions.
Sources
For most Unix systems, you must download and compile the source code. The same source code archive can also be used to build the Windows and Mac versions, and is the starting point for ports to all other platforms.
Download the latest Python 3 and Python 2 source.
Alternative Implementations
This site hosts the 'traditional' implementation of Python (nicknamed CPython). A number of alternative implementations are available as well.
History
Python was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum in the Netherlands as a successor of a language called ABC. Guido remains Python’s principal author, although it includes many contributions from others.
Release Schedules
Information about specific ports, and developer info
OpenPGP Public Keys
Source and binary executables are signed by the release manager using their OpenPGP key. The release managers and binary builders since Python 2.3 have been:
Free Python Ide
- Anthony Baxter (key id: 6A45C816)
- Georg Brandl (key id: 36580288)
- Ned Deily (key ids: AA65421D, 6F5E1540, and Apple Developer ID DJ3H93M7VJ)
- Steve Dower (key id: 487034E5)
- Larry Hastings (key id: F73C700D)
- Łukasz Langa (key id: 10250568)
- Martin v. Löwis (key id: 7D9DC8D2)
- Ronald Oussoren (key id: E6DF025C)
- Benjamin Peterson (key id: 18ADD4FF and A4135B38)
- Barry Warsaw (key ids: A74B06BF, EA5BBD71, and ED9D77D5)
Note: Barry's key id A74B06BF is used to sign the Python 2.6.8 and 2.6.9 releases. His key id EA5BBD71 was used to sign all other Python 2.6 and 3.0 releases. His key id ED9D77D5 is a v3 key and was used to sign older releases; because it is an old MD5 key and rejected by more recent implementations, ED9D77D5 is no longer included in the public key file.
You can import the release manager public keys by either downloading the public key file from here and then running
or by grabbing the individual keys directly from the keyserver network by running this command:
On the version-specific download pages, you should see a link to both the downloadable file and a detached signature file. To verify the authenticity of the download, grab both files and then run this command:
Note that you must use the name of the signature file, and you should use the one that's appropriate to the download you're verifying.
- (These instructions are geared to GnuPG and Unix command-line users. Contributions of instructions for other platforms and OpenPGP applications are welcome.)
Other Useful Items
- Looking for 3rd party Python modules? The Package Index has many of them.
- You can view the standard documentation online, or you can download it in HTML, PostScript, PDF and other formats. See the main Documentation page.
- Information on tools for unpacking archive files provided on python.org is available.
- Tip: even if you download a ready-made binary for your platform, it makes sense to also download the source. This lets you browse the standard library (the subdirectory Lib) and the standard collections of demos (Demo) and tools (Tools) that come with it. There's a lot you can learn from the source!
- There is also a collection of Emacs packages that the Emacsing Pythoneer might find useful. This includes major modes for editing Python, C, C++, Java, etc., Python debugger interfaces and more. Most packages are compatible with Emacs and XEmacs.
Python Editor For Machine Learning
Want to contribute?
Idle Python Editor For Mac
Want to contribute? See the Python Developer's Guide to learn about how Python development is managed.