What’s New in Python 2.7

Author:A.M. Kuchling (amk at amk.ca)
Date:February 14, 2009

This article explains the new features in Python 2.7. No release schedule has been decided yet for 2.7.

Other Language Changes

Some smaller changes made to the core Python language are:

  • List of changes to be written here.


To be written.

New, Improved, and Deprecated Modules

As in every release, Python’s standard library received a number of enhancements and bug fixes. Here’s a partial list of the most notable changes, sorted alphabetically by module name. Consult the Misc/NEWS file in the source tree for a more complete list of changes, or look through the Subversion logs for all the details.

  • A new function in the subprocess module, check_output(), runs a command with a specified set of arguments and returns the command’s output as a string if the command runs without error, or raises a CalledProcessError exception otherwise.

    >>> subprocess.check_output(['df', '-h', '.'])
    'Filesystem     Size   Used  Avail Capacity  Mounted on\n
    /dev/disk0s2    52G    49G   3.0G    94%    /\n'
    >>> subprocess.check_output(['df', '-h', '/bogus'])
    subprocess.CalledProcessError: Command '['df', '-h', '/bogus']' returned non-zero exit status 1

    (Contributed by Gregory P. Smith.)

ttk: Themed Widgets for Tk

Tcl/Tk 8.5 includes a set of themed widgets that re-implement basic Tk widgets but have a more customizable appearance and can therefore more closely resemble the native platform’s widgets. This widget set was originally called Tile, but was renamed to Ttk (for “themed Tk”) on being added to Tcl/Tck release 8.5.

XXX write a brief discussion and an example here.

The ttk module was written by Guilherme Polo and added in issue 2983. An alternate version called Tile.py, written by Martin Franklin and maintained by Kevin Walzer, was proposed for inclusion in issue 2618, but the authors argued that Guilherme Polo’s work was more comprehensive.

Build and C API Changes

Changes to Python’s build process and to the C API include:

  • If you use the .gdbinit file provided with Python, the “pyo” macro in the 2.7 version will now work when the thread being debugged doesn’t hold the GIL; the macro will now acquire it before printing. (Contributed by haypo XXX; issue 3632.)

Port-Specific Changes: Windows

  • The msvcrt module now contains some constants from the crtassem.h header file: CRT_ASSEMBLY_VERSION, VC_ASSEMBLY_PUBLICKEYTOKEN, and LIBRARIES_ASSEMBLY_NAME_PREFIX. (Added by Martin von Loewis (XXX check); issue 4365.)

Port-Specific Changes: Mac OS X

Porting to Python 2.7

This section lists previously described changes and other bugfixes that may require changes to your code:

To be written.


The author would like to thank the following people for offering suggestions, corrections and assistance with various drafts of this article: no one yet.