Skip to content
Resources and slides from the talk "Publishing (Perfect) Python Packages on PyPI"
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
abstracts
helloworld
README.md
publish_on_pypi-pyconau18.pdf
publish_on_pypi-pyconuk18.pdf
publish_on_pypi-python_glasgow19.pdf

README.md

Publishing (Perfect) Python Packages On PyPI

This repo hosts slides and references for a talk I've given at PyCon Australia '18; PyCon UK '18; Python Glasgow, June '19; and upcoming EuroPython '19.

PDF exports of different versions the slide deck can be found here (probably improving chronologically):

References

I referred to a bunch of different resources and projects when writing this talk. The primary sources I can think of are listed here:

Packaging Python Projects

The official packaging documentation from the Python Packaging Authority.

The Attrs Project

This project has an excellent example of a non-trivial, but sensible setup.py. I've learned so much by following the evolution of this project.

Cookiecutter

So much more than a source of python package templates, you'll find a bunch of project templates for different languages and ecosystems.

Ionel's Python Library Template

My preferred Python library template, with configuration for testing, CI etc. It most closely matches the advice in this talk.

Hitchikers Guide to Python Packaging

An outdated, but still useful guide to packaging in Python, from Tarek Ziadé.

Setuptools Documentation

The official documentation of the setuptools library. Comprehensive but sometimes a little dense.

PIP Documentation

Official documentation for the PIP tool.

Alternative Package Managers

Poetry

Aims to replace setup.py and PIP.

Flit

Aims to replace setup.py with something simpler and more declarative.

Conda

A competitor to pip, largely used in the data community. Able to install much more than just python modules!

You can’t perform that action at this time.