Fork me on GitHub

python3.get()
getpython3.com

Python 3 Resources
for Python developers and users

Introduction

Welcome to getpython3.com - this site aims to be a resource for Python 3 for developers. This includes guides, videos, tutorials and other resources to help you and your team achieve a successful Python 3 port of your application, library, framework or tool. It also covers Python Software Foundation financial grants for porting to Python 3.

What is Python 3?

Short summary

Although most Python code is currently written for Python 2.x, Python 3.x is the present and future of the language.

Python 2.7.6 was released in November 2013. The 2.x branch will have no further major releases, though the 2.7 end-of-life release will have an extended period of bug and security fixes.

Python 3.x continues to be actively developed. The most recent release is Python 3.4, released in March 2014.

Detailed discussion

Guido van Rossum (the original creator of the Python language), together with other python-core developers, decided to use Python 3.x to clean up the Python language. Python 2.x releases were always careful to preserve backwards compatibility with older versions, but Python 3.0 was a clean-up that didn't have to carry old features.

The major differences are:

  • Better Unicode support
    Unicode is now woven into the language, with all text strings being made Unicode by default.
  • Easier for newcomers
    Dividing integers always returns an accurate result. Integers can handle any size, no longer limited to the machine's word size. Comparison operators are simpler, and comparing different types is now an error. Catching exceptions in the except: statement is clearer.
  • Removed old features and complications
    All classes are now new-style. range() and various dictionary methods return a memory-efficient iterable and not a list. List comprehensions no longer leak the value for their looping variable.

The What's New in Python 3.0 document provides a good overview of the major language changes between 2.7 and 3.x, and discusses likely sources of incompatibility with existing Python 2.x code.

Later versions of Python 3.x added more features, discussed in a series of "What's New" documents for Python 3.1, Python 3.2, Python 3.3, and Python 3.4.

Download Information

The most current version of Python 3 is 3.4.0 - here's a list of new things added:

  • yield from expression for delegating to a generator (PEP 380)
  • new library modules for LZMA compression, mock objects for unit tests, and representing IP addresses
  • the decimal type has been re-implemented in C, making it much faster
  • PEP 393, Flexible String Representation, which reduces memory usage and removes the distinction between narrow and wide builds of Python.
  • PEP 397, a Windows® launcher for *.py files.
  • PEP 405, Python Virtual Environments
  • PEP 3118, new implementation of the memoryview type.
  • PEP 3151, reworked hierarchy of OS and I/O exceptions
  • the import statement is now built atop the importlib module
  • for easier porting to Python 3, the u'' syntax is now accepted again
  • security fix: hash randomization is now enabled by default.

You can see details on what's changed by looking at the "What's New in 3.4" document, as well as the earlier What's New articles, and the change log. Builds are available for all major platforms, and OS X users can use homebrew via "brew install python3"

Go Here to Download »

Learn Python 3

Here are some resources for learning Python 3:

Resources

There is a wealth of information out there about Python 3 and porting to it. There is an entire mailing list (python-porting) dedicated to helping people port things to Python 3 - developers experienced in porting should join up, and there is already a good team there to help support you.

Notable Ports

Many libraries and packages are available for use with Python 3. You can see a semi-complete list of all Python 3 supporting packages on the Python Package Index. A different site offers a regularly updated list of the most popular packages.

The following libraries/projects and frameworks are available for Python 3. Some of these represent entire frameworks, while others are major dependencies for other projects and tools:

Financial support for porting

Python 3 is the future of the Python language, and the Python Software Foundation (PSF) strongly believes in supporting the porting effort.

For example, the PSF issued developer grants to port projects such as the email package, PyOpenSSL, and WebOb. It has also provided grants for other general Python development work, such as to Brett Cannon for completely rewriting the Python developer's guide.

The Python Software Foundation is here for not just CPython, or python-core, or Python-the-language. It is here for Python - the community, its efforts, its developers, designers and people.

Certain projects - most notably PyPy - have already started donation programs to help fund large-scale development efforts for Python 3. Others may follow

Jesse Noller is currently offering to help library, framework and other individuals help in writing grant applications for funding efforts. See this post for details. If you represent a company that is interested in helping fund Python 3 porting efforts, please email jnoller@python.org with information and details. I will coordinate with you, projects, and the Python Software Foundation.

Source code to this site available on github.