PyCon 2016 in Portland, Or
hills next to breadcrumb illustration

Tuesday 1:40 p.m.–2:25 p.m.

Shipping Software To Users With Python


Audience level:


Python is a versatile language, available on a wide variety of platforms. However, when it comes to shipping code to users on those platforms, Python violates Zen Rule 13: “There should be one—and preferably only one—obvious way to do it.”: there are a lot of ways to do it, and many of them are far from obvious. In this talk I'll show you how to build Python code into something a user can use.


It's too hard to ship software using Python. Most of the tools we use to distribute Python software — `pip`, distutils, setuptools, `virtualenv` — are geared towards developers assembling a local environment with some code in it. But what about shipping to users, or to production? Once the developer is done writing all that code in the environment they've created, what then? In this talk I will briefly discuss each of the myriad of different tools that are available to create distributable artifacts for various platforms; their features, their limitations, and how to choose the one that's right for you. I will also discuss best practices for deploying Python software server-side using the same tools developers use. The platforms covered will include: - iOS - Android - Server-Side Linux (Docker) - Desktop Linux - Microsoft Windows - OS X GUI - OS X command line (Homebrew) Finally, I will ask the audience for help in simplifying the presently complex and confusing situation that I need to describe in this talk, providing references to specific projects they can contribute to, and make recommendations as to how those projects might be changed to provide a better experience for all Python users.