We have nearly one million lines of Python 2 code in production – and now?

Porting a rather large code base to Python 3 – lessons learned usable for projects of any size

Michael Howitz

Best Practice Development Python 2 Python 3 legacy-code

See in schedule

In this talk I am going to present possible approaches for a Python 3 migration of existing Python code running on Python 2.7. I'll evaluate which of these approaches seems suitable for a large code base and which principles should be paid attention to to increase the probability of a successful migration project.

I'll use union.cms (a content management system used by German trade unions) to show the story of a successful migration project involving nearly one million lines of Python code. The story will include the obstacles we encountered and what we learned on the way.

I believe that most of the discussed ideas and experience can also be used unchanged in smaller projects as the presented principles are very much the same.

Goal of the presentation: You should be able to come up with a plan for migrating your Python 2 based projects to Python 3.

Type: Talk (30 mins); Python level: Intermediate; Domain level: Intermediate


Michael Howitz

gocept gmbh & co. kg

I am a software developer at gocept in Halle (Saale), Germany.
I started to use Python in 2003. Since than I develop mostly web applications with Zope, Plone and Pyramid.