Contents
Introduction
Python is one of the most widely used programming language over the world. This is not my opinion, is a demonstrated statement for which you can find the proof of by reading the Programming Language Popularity articles at:
http://www.developer.com/lang/article.php/3433891
And, for more recent/detailed results, at:
If you are new to programming with Python, this page gives some pointers on how to do just that. There is also some interesting link for more experienced users that would like to find new ideas or ready-to-use Python scripts.
First of all, if you are new to Python, and especially if you are new to programming in general, it makes the most sense to learn Python itself first, without any GUI stuff. This can be frustrating if your goal is to write GUI programs, and particularly if you have experience with an environment like Visual Basic in which GUI programming is integrated into the environment. It is worth it, however, to take some time to learn about Python. Python is a very powerful language capable of doing many things both with and without GUIs.
Using Python requires a pretty good understanding of Object Oriented (OO) programming.
Learn Python
If you don't know programming then this link is your best bet:
http://www.python.org/moin/BeginnersGuide
Another good resource is Dive Into Python; you can find it in html, pdf, Microsoft Word 97, Plain Text and XML formats and there is also a printed book. More information can be found at:
There are currently (as of 3 May 2005) 6 language translations of this book online. Other interesting resources for non-programmers are:
If you are already familiar with programming but still need to learn Python, then the Python Tutorial is a good place to start:
http://www.python.org/doc/current/tut/tut.html
Now that Python has "wet your appetite", there is something else you probably need:
- A good editor;
- Some nice places where to find useful Python modules, scripts and interesting ideas;
- Various site-packages that extend the functionalities of Python;
- A place to refer to or to ask for a suggestion when you are stuck on an (apparently) unsormountable problem.
The Editor
The word "Editor" should probably be written in red bold and blinking characters. The choice of the "best" editor is one of the most debated questions in all Python internet public forums. In my opinion, the "Best Editor" is a concept similar to the Graal: unreachable. However, you can pick some editors from an impressive list of possible candidates, try them, and choose the one that best fits your needs.
A somewhat incomplete list of available editors for Python can be splitted into 5 cathegories (the editors are ordered alphabetically, not by their importance/common use):
Multi-Platforms Editors
Name |
Platform |
Notes |
Unix,Windows,Mac OS X |
Extensible in Tcl, Tk; Can interact with python. |
|
Linux, MacOS X |
The link point the features page. |
|
Linux, Windows |
IDE with GUI designer, integrated debugger, UML view, CVS integration, file Todo, application Todo, Zope, Application Documentation view, code indentation, code completion, call tips, searchable docs for Python, wxPython, OGL, STC and more |
|
Linux,Windows,FreeBSD |
Cream is a free and easy-to-use configuration of the powerful and famous |
|
Unix, Windows, Mac |
Extensible in Python; part of PythonCard. Includes PyCrust shell. |
|
Unix, Linux, OpenBSD, FreeBSD, SunOS, Solaris, HPUX, SGI Irix, Windows, Cygwin, MacOS |
BRIEF-compatible, supports Python syntax, in-buffer Python interpreter, supports lots of languages. Powerful macro language. |
|
Unix/X, Windows, Mac OS X |
Simple, Highly Customizable Editor/Environment. A Tribute to Dr Scheme. |
|
Unix, Windows, Mac |
Python support with Emacs Python Mode. Extensible in Python using pymacs |
|
Windows, Linux, FreeBSD, and OS/2 |
Customizable Python mode. |
|
Windows, Unix, DOS, OS/2 console, Unix/X |
Supports lots of languages, including Python; doesn't seem programmable |
|
Java |
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 |
|
Unix, Windows |
Supports Python syntax and a Python-specific menu. |
|
Unix, VMS, MSDOS, OS/2, BeOS, QNX, and Windows. |
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. |
|
Java |
Has two plugins - one for Jython and one for Python - interactive debugging, code browsing, highlighting. |
|
Java |
A Java text editor which offers embedded Python scripting (thanks to Jython). |
|
Unix, Windows, Mac |
Outlining editor, fully scriptable and extensible, supporting literate programming. 100% pure Python code. |
|
Unix, VMS, Win32, MacOS X |
X-Based, Python support builtin. |
|
Unix/X, Windows, Mac OS X |
A flexible editor based on wxPython. It can be easily extended with mixins and plugins, and has many features. |
|
MacOS Classic/MacOS X, Linux, FreeBSD, Windows 2k/XP |
Builtin support for Python. Was defunct, now revived. Incremental search. No tabbed-interface. |
|
Win, Linux, Mac (Eclipse Plugin) |
Eclipse plugin |
|
Windows/X (Python+wxPython) |
Written in Python - code folding, snippets, unicode, multiple documents, code completion, several languages. |
|
Unix/Windows/Mac |
Extensible in Python, part of PythonCard. |
|
Unix/Windows |
An application of the widely-used Scintilla rich text widget/control. Python API for calltips and autocompletion available. |
|
Windows, Linux, Mac OS X (Python+wxPython) |
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. |
|
ViImproved (Vim) |
Unix, Windows, MacOS, etc. |
Highly configurable text editor built to enable efficient text editing. Syntax coloring, indenting, and source-navigation tools for Python. Can be scripted in Python. See also Cream. |
Windows, Linux, Several Unix Flavors, OS/390 |
Syntax coloring, popup function arguments, class hierarchy browser, other nice Python features. |
|
Unix/Windows |
Simple text editor written in python.Syntax highlighter, Code fold, Export code in HTML.... |
UNIX-Only Editors
Name |
Platform |
Notes |
Unix/X |
Extensible in Python |
|
Unix + QT |
scintilla based, with python scriptable text editor. |
|
Unix + Gnome |
Editor written in C with Python bindings. |
|
Unix |
|
|
Unix |
Advanced editor for the KDE environment - supports Python syntax. |
|
Unix |
KDE Advanced Text Editor (uses KWrite component) - supports Python syntax. Now has a plugin to browse Python classes and globals. |
|
Linux/FreeBSD |
Written in Python, so should be extensible using Python. |
|
Unix |
Editor written in Python atop pyScintilla and pyGtk. |
|
Linux + KDE |
Full-featured web development environment that also supports Python. |
|
Unix |
Acme clone for Unix. Can connect to it (and control it) from Python. |
Windows-Only Editors
Name |
Syntax Highlighting |
Free |
Python-specific notes |
|
|
Automatic (no wordlist) autocompletion. Also there are lots of plugins including even any windows scripting host (including python) scripting |
|
|
|
|
|
|
|
Pull the appropriate file from http://www.codewright.com/support/addons.asp for Python support. |
|
|
|
Spaces instead of tabs (and one backspace to delete four spaces). Code templates. |
|
|
|
|
|
|
|
||
|
|
||
|
|
Autocompletion via description files. |
|
|
|
Unicode and multibyte languages support. Extremely fast. Find/Replace in Files. Supports Javascript/VBScript scripting. |
|
|
|
Editor built on SciTe; main claim to fame is a robust debugger that has remote capabilities. |
|
|
|
Syntax coloring customizable. |
|
|
|
Auto-completion, customizable keybindings, section browser... |
|
|
|
Builtin support for Python. |
|
|
|
This project, based on Scintilla edit component (a very powerful editor component) and written in C++ with pure win32 api and STL. Supports auto-completion, code folding, etc for C, C++, Java, Javascript, Python, C#, XML, HTML, VBScript, PHP, and plenty more! |
|
|
|
Supports Python Syntax highlighting by default. Great Notepad replacement for windows. Source available for download. |
|
|
|
Auto-completion. |
|
|
|
Auto-completion |
|
|
|
Auto-completion, class browser, parameter tips, ... |
|
|
|
Class browser, auto-completion, syntax highlighting, ftp client, project files, hex editor, file differences .. |
|
|
|
Auto-completion, syntax highlighting, ... |
|
|
|
Symbol database support for Python if you get the Python.CLF file provided by the Source Insight folks. |
|
|
|
Incremental Search, support Python scripting. |
|
|
|
Add Python with a free download from the Textpad site. |
|
|
|
Supports syntax coloring and autocompletion using a wordfile. An updated version that supports Python 2.x is also available. |
|
|
|
Class browsing, auto-completion, and builtin Python scripting. |
Macintosh-Only Editors
Name |
Platform |
Notes |
MacOS |
Python-mode extensible in Tcl |
|
MacOS 9/MacOS X |
Full-featured text editor; includes Python support. TextWrangler is the free version (see below). |
|
MacOS X |
Builtin support for Python. |
|
MacOS |
Included in MacPython distribution. |
|
MacOS 68k MaOS 9 MacOS X |
Does not initially include Python support but new language modes can be created. One available here Mi_Python |
|
MacOS X |
Python syntax coloring. Allow multiple author to edit the same file collaborativelly over the network using "rendezvous". |
|
MacOS X |
Free and full-featured text editor based on BBEdit. Includes Python syntax highlighting. |
|
MacOS X |
Free IDE and text editor. Includes Python syntax coloring. |
|
Mac OS X 10.? |
Great editor with good Python syntax support and Cocoa interface |
Enhanced Python Shells
Name |
Platform |
Notes |
Python + wxPython |
Interactive Python shell using wxPython. |
|
Unix, MacOS X, Windows |
Enhanced interactive Python shell. Also usable as pythonic system shell (bash/cmd.exe) replacement. |
|
win32 |
Interactive python shell using wxPython. py script and exe for win. Real and complex data plotting capability. Free. |
|
KDE |
An interactive Python shell using PyKDE and a KHTMLPart (for HTML rendering). |
Nice Places To Find Resources
Sometimes ones needs to find a simple and ready-to-use module or script in Python. Some good places to start lurking are the Python Cookbook at:
http://aspn.activestate.com/ASPN/Python/Cookbook/
and the Vaults Of Parnassus:
http://www.vex.net/parnassus/apyllo.py?i=979528604
If you don't find what you are searching for, just read below.
Site Packages
Python itself comes with some of the so-called "Batteries Included", but there are several other site-packages that implement a particular feature you are looking for. So, instead of re-inventing the wheel, you could browse the following sites:
Python Packages Index http://www.python.org/pypi
Open Directory Project's Python Tools page.
wxPython itself, moreover, is a site package
Where To Ask
When a problem seems to grow and to get more and more frustrating, maybe it is time to ask for some suggestions. The most favourable places to go are the Python Mailing Lists and Newsgroups. Here's an overview of the mail and news resources for Python. A complete listing of python.org's mailing lists is also available.
Mailing lists for users speaking languages other than English are listed in the Non-English Python Resources guide, which includes mailing lists, translated and original non-English documentation, and other resources.
comp.lang.python
The comp.lang.python newsgroup is a high-volume Usenet open newsgroup for general discussions and questions about Python.
Pretty much anything Python-related is fair game for discussion, and the group is even fairly tolerant of off-topic digressions; there have been entertaining discussions of topics such as floating point, good software design, and other programming languages such as Lisp and Forth.
Most discussion on comp.lang.python is about developing with Python, not about development of the Python interpreter itself. Some of the core developers still read the list, but most of them don't. Occasionally comp.lang.python suggestions have resulted in an enhancement proposal being written, leading to a new Python feature. If you find a bug in Python, don't send it to comp.lang.python; file a bug report in the bug tracker.
The newsgroup is available as a mailing list, python-list, for users who don't have Usenet access or prefer to receive messages as e-mail. Items posted on the Usenet group appear on the mailing list, and vice versa. Due to the mysteries of Usenet, the order in which items show up may vary.
Rudeness and personal attacks, even in reaction to blatant flamebait, are strongly frowned upon. People may strongly disagree on an issue, but usually discussion remains civil. In case of an actual flamebait posting, you can ignore it, quietly plonk the offending poster in your killfile or mail filters, or write a sharp but still-polite response, but at all costs resist the urge to flame back. Generally comp.lang.python is a high-signal, low-noise group. It's also a high-traffic group, currently running at around 200 posts per day.
Comments
If someone has something more to add... -- Andrea Gavana @ 3 May 2005