Clone this wiki locally

The Pyramid master branch runs on Python 3.2 (as of September 25, 2011). The result has since been released as Pyramid 1.3.x. Thanks to Joe Dallago and Joel Bohman, our GSOC 2011 students who helped with porting efforts.

Pyramid's Python 3 compatibility does not require a "translation" (via 2to3 or 3to2) but instead uses a single codebase that runs under 2 and 3. Python 3 compatible releases of all core and most scaffolding dependencies have been made to PyPI.

Version compatibility constraints

Pyramid 1.3+ runs under Python 2.6, 2.7, and 3.2. It will no longer support Python 2.5 in any form, and does not support any version of Python 3.0 or 3.1.

Disused dependencies

Paste nor PasteScript (which were dependencies of Pyramid 1.0+) have not been ported to Python 3, and likely won't be. As a result, we've replaced PasteScript commands with Pyramid-specific analogues. Previously you created a Pyramid application like so:

paster create -t pyramid_starter foo

Now you create it like so (scaffolding names and flags have also changed):

pcreate -s starter foo

We've replaced use of the Paste httpserver with a new "waitress" server in the scaffolds, so once you create a project from a scaffold, its "development.ini" will have the following line:

use = egg:waitress#main

Instead of:

use = egg:Paste#httpserver

Note that this is purely a default to make it possible to use the same scaffolding under Python 2 and Python 3; people running Pyramid under Python 2 can still manually install Paste and use the Paste httpserver by replacing the former line with the latter.

Since we no longer depend on PasteScript, instead of running a Pyramid project created via a scaffold using "paster serve", you now must use the "pserve" command:

pserve development.ini

Using "pserve" and "pcreate" will work under both Python 2 and Python 3. The ini configuration file format has not changed. Python 2 users can install PasteScript manually and use "paster serve" and "paster create" instead if they like.