ActivePython 2.7 released - and what 2.7 means for Python’s future

The last major planned version in the 2.x series, Python 2.7, was released last weekend. ActiveState swiftly prepared a corresponding ActivePython release for your downloading pleasure. Click here to download ActivePython.

As usual, this release is full of goodies including many features that were first released in Python 3.1 and have now been back-ported into 2.7 - along with a new and improved PyPM - now is the time to make the move to 2.7.

Why switch to 2.7 now?

As the What's New document explains, Python 2.7 will be the last major release in the 2.x series. Unlike other major releases, Python 2.7 will be maintained for a longer time while the transition to 3.x happens. Porting your software to Python 2.7 now will facilitate an easier transition to 3.x in future due to the partial backport of 3.x features back to 2.7. Also the longer maintenance period provides you with sufficient breathing room, so you can migrate to 3.x at your own pace as per your organization's inclinations.

This release has a substantial subset of 3.x features that were backported to Python 2.7 including:

  • the syntax for set literals ({1,2,3} is a mutable set).
  • dictionary and set comprehensions ({i: i*2 for i in range(3)}).
  • a new version of the io library, rewritten in C for performance.
  • an enhanced nested with statement syntax
  • argparse module, a more powerful replacement for optparse, for parsing command-line arguments

While you may have read, the Python community has declared a temporary moratorium (suspension) on changes to the Python language syntax in an effort to facilitate other Python implementations to catch up to Python 3.x — the moratorium does not that mean that python core development has stopped or even slowed down.

On the contrary, new modules continue to be added, bugs fixed, and performance tweeked — and, as always, ActiveState will continue supporting 2.7.x with builds, extra modules and PyPM as they become available.

What else is new in ActivePython?

Mac OS X 64-bit and readline support

This release is the first ActivePython for Mac OS X that includes 64-bit support (i386+x86_64). Also new to this ActivePython release is a functional readline module, via Apple's libedit library - thus enabling one to use the UP/DOWN arrow keys in the interactive Python shell.

Python Package Manager for Python 2.7

ActivePython 2.7 includes the Python Package Manager (PyPM) for Windows, Linux and Mac (32-bit and 64-bit). PyPM is a binary Python package installer. As one of our users observed, it facilitates easy installation of Python packages (“something that works”) so you can spend your valuable time on using those packages instead of fiddling with the unnecessarily time-consuming build subtleties of each package yourselves:

C:\>pypm install mysql-python
The following packages will be installed to %APPDATA%\Python (2.7):
Get: [] mysql-python 1.2.3-1
Installing mysql-python-1.2.3-1
C:\>python -c "import MySQLdb"

Other ActivePython goodies

ActivePython also includes:

  • PyWin32 - the ever-popular Python for Windows extensions
  • Distribute - a community-inspired compatible fork of the setuptools project
  • virtualenv - a tool to create isolated Python environments; also supported by PyPM itself
  • SQLAlchemy - a powerful and flexible Object Relational Mapper (ORM) for Python
  • pip - an alternative Python source package installer

In addition, ActivePython also includes Python core documentation (reference library and official tutorial) along with other useful content such as Dive Into Python, FAQs, PEPs, etc.

For more details, please see the full What's New article, and also the ActivePython 2.7 release notes.

Further reading