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:

http://www.tiobe.com/

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:

http://diveintopython.org/

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:

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

Alphatk

Unix,Windows,Mac OS X

Extensible in Tcl, Tk; Can interact with python.

Bluefish

Linux, MacOS X

The link point the features page.

Boa Constructor

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

Cream

Linux,Windows,FreeBSD

Cream is a free and easy-to-use configuration of the powerful and famous

codeEditor

Unix, Windows, Mac

Extensible in Python; part of PythonCard. Includes PyCrust shell.

CRiSP

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.

DrPython

Unix/X, Windows, Mac OS X

Simple, Highly Customizable Editor/Environment. A Tribute to Dr Scheme.

EmacsEditor

Unix, Windows, Mac

Python support with Emacs Python Mode. Extensible in Python using pymacs

Epsilon

Windows, Linux, FreeBSD, and OS/2

Customizable Python mode.

FTE Text Editor

Windows, Unix, DOS, OS/2 console, Unix/X

Supports lots of languages, including Python; doesn't seem programmable

J

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

Jasspa's MicroEmacs

Unix, Windows

Supports Python syntax and a Python-specific menu.

JED

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.

JedIt

Java

Has two plugins - one for Jython and one for Python - interactive debugging, code browsing, highlighting.

JeXt

Java

A Java text editor which offers embedded Python scripting (thanks to Jython).

Leo

Unix, Windows, Mac

Outlining editor, fully scriptable and extensible, supporting literate programming. 100% pure Python code.

NEdit

Unix, VMS, Win32, MacOS X

X-Based, Python support builtin.

UliPad

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.

Pepper

MacOS Classic/MacOS X, Linux, FreeBSD, Windows 2k/XP

Builtin support for Python. Was defunct, now revived. Incremental search. No tabbed-interface.

pyDev

Win, Linux, Mac (Eclipse Plugin)

Eclipse plugin

PyPE

Windows/X (Python+wxPython)

Written in Python - code folding, snippets, unicode, multiple documents, code completion, several languages.

PythonCardEditor

Unix/Windows/Mac

Extensible in Python, part of PythonCard.

SciTe

Unix/Windows

An application of the widely-used Scintilla rich text widget/control. Python API for calltips and autocompletion available.

SPE

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.

Visual Slick Edit

Windows, Linux, Several Unix Flavors, OS/390

Syntax coloring, popup function arguments, class hierarchy browser, other nice Python features.

wxKonTEXT

Unix/Windows

Simple text editor written in python.Syntax highlighter, Code fold, Export code in HTML....


UNIX-Only Editors

Name

Platform

Notes

Cooledit

Unix/X

Extensible in Python

CUTE

Unix + QT

scintilla based, with python scriptable text editor.

Glimmer

Unix + Gnome

Editor written in C with Python bindings.

JOE

Unix

 

KWrite

Unix

Advanced editor for the KDE environment - supports Python syntax.

Kate

Unix

KDE Advanced Text Editor (uses KWrite component) - supports Python syntax. Now has a plugin to browse Python classes and globals.

Moleskine

Linux/FreeBSD

Written in Python, so should be extensible using Python.

pyeditor

Unix

Editor written in Python atop pyScintilla and pyGtk.

Quanta KDE

Linux + KDE

Full-featured web development environment that also supports Python.

Wily

Unix

Acme clone for Unix. Can connect to it (and control it) from Python.


Windows-Only Editors

Name

Syntax Highlighting

Free

Python-specific notes

FAR+colorer

(./)

Automatic (no wordlist) autocompletion. Also there are lots of plugins including even any windows scripting host (including python) scripting

Code-Genie

(./)

CodeWright

(./)

Pull the appropriate file from http://www.codewright.com/support/addons.asp for Python support.

ConText

(./)

(./)

Spaces instead of tabs (and one backspace to delete four spaces). Code templates.

Crimson

(./)

(./)

Editeur

(./)

EditPad Pro

(./)

EditPlus

(./)

Autocompletion via description files.

EmEditor

(./)

Unicode and multibyte languages support. Extremely fast. Find/Replace in Files. Supports Javascript/VBScript scripting.

HAP Debugger

(./)

(./)

Editor built on SciTe; main claim to fame is a robust debugger that has remote capabilities.

Hurricane Editor

(./)

Syntax coloring customizable.

MED

(./)

Auto-completion, customizable keybindings, section browser...

Multi-Edit

(./)

Builtin support for Python.

NotePad++

(./)

(./)

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!

NotePad2

(./)

(./)

Supports Python Syntax highlighting by default. Great Notepad replacement for windows. Source available for download.

PrimalCode

(./)

Auto-completion.

PrimalScript

(./)

Auto-completion

Programmer Studio

(./)

Auto-completion, class browser, parameter tips, ...

PSPad

(./)

(./)

Class browser, auto-completion, syntax highlighting, ftp client, project files, hex editor, file differences ..

PythonWin

(./)

(./)

Auto-completion, syntax highlighting, ...

Source Insight

(./)

Symbol database support for Python if you get the Python.CLF file provided by the Source Insight folks.

Syn

(./)

(./)

Incremental Search, support Python scripting.

TextPad

(./)

Add Python with a free download from the Textpad site.

UltraEdit

(./)

Supports syntax coloring and autocompletion using a wordfile. An updated version that supports Python 2.x is also available.

Zeus

(./)

Class browsing, auto-completion, and builtin Python scripting.


Macintosh-Only Editors

Name

Platform

Notes

AlphaTcl

MacOS

Python-mode extensible in Tcl

BBEdit

MacOS 9/MacOS X

Full-featured text editor; includes Python support. TextWrangler is the free version (see below).

irEdit

MacOS X

Builtin support for Python.

MacPython IDE

MacOS

Included in MacPython distribution.

mi

MacOS 68k MaOS 9 MacOS X

Does not initially include Python support but new language modes can be created. One available here Mi_Python

SubEthaEdit

MacOS X

Python syntax coloring. Allow multiple author to edit the same file collaborativelly over the network using "rendezvous".

TextWrangler

MacOS X

Free and full-featured text editor based on BBEdit. Includes Python syntax highlighting.

Xcode

MacOS X

Free IDE and text editor. Includes Python syntax coloring.

TextMate

Mac OS X 10.?

Great editor with good Python syntax support and Cocoa interface


Enhanced Python Shells

Name

Platform

Notes

PyCrust

Python + wxPython

Interactive Python shell using wxPython.

IPython

Unix, MacOS X, Windows

Enhanced interactive Python shell. Also usable as pythonic system shell (bash/cmd.exe) replacement.

psi

win32

Interactive python shell using wxPython. py script and exe for win. Real and complex data plotting capability. Free.

khpython

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:

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

LearningPython (last edited 2008-03-11 10:50:38 by localhost)

NOTE: To edit pages in this wiki you must be a member of the TrustedEditorsGroup.