ActivePython 3 from ActiveState

Try ActivePython 3

ActivePython is the industry-standard Python distribution, available for Windows, Linux and Mac OS X. Developers worldwide rely on ActivePython's completeness and ease-of-use, while corporate users protect their infrastructure and stay competitive with quality-assured ActivePython business solutions.

Organizations who rely on Solaris, AIX and HP-UX or older versions of Python across platforms trust our newest offering: ActivePython Business Edition.

About Python 3

Python 3 (a.k.a. "Python 3000" or "Py3k") is a new version of the Python language that is incompatible with the current 2.x line of releases. The language is largely the same, but many details, especially how built-in objects like dictionaries and strings work, have changed considerably, and a lot of deprecated features have finally been removed. Also, the standard library has been reorganized in a few prominent places.

Which version should I choose?

Many 3rd-party modules and extensions that you may depend upon may not yet be available for Python 3. As a result you may want to continue to use Python 2 for the time being. However,you can safely install both ActivePython 2.7 and ActivePython 3 side-by-side on your computer so that you can experiment with Python 3 while still using Python 2 for your current code.

Python 3 is Python's future, and Python 2.7 is the final 2.x release.

Download ActivePython 3 for your platform

Download ActivePython for your platform and try it out:

Release Highlights

What's New in Python 3.x is an excellent resource describing the major changes in Python 3. Some highlights:

"print" is a function

The print statement has been replaced with a print() function, with keyword arguments to replace most of the special syntax of the old print statement.

Old: print "The answer is", 2*2 
New: print("The answer is", 2*2) 
Old: print >>sys.stderr, "fatal error" 
New: print("fatal error", file=sys.stderr) 

Unicode changes

How Python handles text vs. data has changes considerably. All text is Unicode (represented by the str type), all binary data (e.g. 8-bit strings, encoded Unicode) is held in the new bytes type.

Syntax changes

Python 3 supports function argument and return value annotations. Functions can declare keyword-only arguments. Extended iterable unpacking allows code like:

a, b, *rest = some_sequence
*rest, last = some_sequence

Other syntax changes:

d = {k: v for k, v in stuff} # dictionary comprehensions 
s = {"peter", "paul", "mary"} # set literals 
mode = 0o755 # octal literals 
mask = 0b01001111 # binary literals 
data = b"marker" # bytes literals 

Much more

There are many more changes in Python 3. Resources for Python 3:

Porting to Python 3

The currently suggested path for developing for both Python 2 and 3 is to maintain code for Python 2.6/2.7 and use:

  1. The python -3 command line option in Python 2.6/ 2.7 to enable warnings about Python 3 porting issues.
  2. The 2to3 source-to-source translation tool included in Python 2.6/ 2.7 and Python 3 distributions.