ActiveBlog

Python 3: In Stackato from the Start
by Troy Topnik

Troy Topnik, January 9, 2013

Python3 - Stackato I recently came across a post on ZDNet Cloud Watch by Jack Clark highlighting the new Python 3 support in Heroku. This is of course great news for Python developers who want to start using the next generation of the language on a hosted platform, but the assertion that this puts "the Salesforce-owned cloud ahead of its other platform-as-a-service brethren" bugged me.

For the record, Stackato has had support for Python 3 since early in our Beta releases. We've been tracking core Python 3 releases with ActivePython since 2008, and it was only natural for us to include the most current releases of this runtime in Stackato from the start.

Under the PaaS industry radar

Omitting Stackato in a poll of Heroku's competitors is an understandable oversight. It gets back to a fundamental problem we have when describing why we consider Stackato a PaaS at all. ActiveState doesn't host a service, we built software that lets you run your own. If you're just looking for somewhere to deploy your apps, Stackato probably won't appear on your radar.

However, as more Stackato-powered services start appearing, developers looking for alternatives to Heroku (or Google App Engine, or Engine Yard, or dotCloud) will be discovering the broad range of runtime, framework and data service options available in Stackato.

An example using Bottle

Since I'm not much of a Python programmer, I borrowed someone else's code to show this off. After some quick Googling, I was able to find a little Python 3 WSGI sample app by André Wobst (wobsta) that fit the bill for a sample app (i.e. it works on Stackato with a bit of trivial config). The py3kwsgitest app is just a fork with a small stackato.yml file listing some module dependencies.

name: p3ktest 
framework:
  type: python
  runtime: python32
  start-file: app.py
mem: 64M

requirements:
  pypm:
    - bottle
    - multipart
    - jinja2
    - sqlalchemy

Marcel Hellkamp (aka defnull) has done the hard work of making sure Bottle works with Python 3. I removed the siloed bottle.py and had Stackato install the module with PyPM instead along with the other dependencies (you could get the very latest using pip if you wanted).

This app doesn't do much, but it's a great jumping off point for building a simple web application using Python 3. At PyCon last year, Benjamin Peterson encouraged everyone to start using Python 3 by pointing out all the good things going into it. Many of Python's web frameworks now work with Python 3 (bottle, CherryPy, Pyramid and even experimental support in Django 1.5), so there are fewer and fewer excuses for amateurs like me not to dive in and start building web applications with it.

Subscribe to ActiveState Blogs by Email

Share this post:

Category: stackato
About the Author: RSS

Troy Topnik is ActiveState's technical writer. After joining ActiveState in 2001 as a "Customer Relationship Representative" (AKA Tech Support), Troy went on to lead the PureMessage Enterprise Support team before moving on to a technical writing role in 2004. His talent for describing software for new users stems from his difficulty understanding things that developers find obvious. He has a Bachelor of Music from the University of Victoria.