Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Inside The Cheeseshop: How Python Packaging Works (PyOhio 2018)

Inside The Cheeseshop: How Python Packaging Works (PyOhio 2018)

Questions and confusion about the Python packaging ecosystem abound. What is this `setup.py` file? What's the difference between wheels and eggs? Do I use setuptools or distutils? Why should I use twine? Do I put my projects dependencies in a `requirements.txt` or in `setup.py`? How do I just get my module up on PyPI? Should I use `pip` or `conda`? Wait, what is Warehouse?

This talk identifies the key tools one might encounter when trying to distribute Python software, what they are used for, why they exist, and their history (including where their weird names come from). In addition, we'll see how they all work together, what it takes to make them work, and what the future has in store for Python packaging.

Dustin Ingram

July 28, 2018

More Decks by Dustin Ingram

Other Decks in Technology


  1. Who am I? • Python Packaging Working Group (Packaging-WG) member

    • Python Packaging Authority (PyPA) member • Python Package Index (PyPI) maintainer/contributor/admin • Developer Advocate @ Google @di_codes
  2. Python Packaging Ge#ng the Code You Wrote To the People

    That Want It Using the Same Language You Wrote It In @di_codes
  3. Python Packaging Let Me Just Get You Up To Speed

    On Everything That's Changed Since Last Time @di_codes
  4. Hello I Am a PyPI Maintainer At the Very Least

    I Should Be Able To Tell You How To Use PyPI @di_codes
  5. Links • h#ps:/ /www.youtube.com/watch?v=qOH-h-EKKac • h#ps:/ /www.youtube.com/watch?v=5BqAeN-F9Qs • h#ps:/ /www.youtube.com/watch?v=gc9dkktg1gU

    • h#ps:/ /www.youtube.com/watch?v=W8A2bOKPtJU • h#ps:/ /www.youtube.com/watch?v=eLPiPHr6TVI @di_codes
  6. How to get help • h#ps:/ /packaging.python.org • Issue tracker

    for a given tool • On IRC: #pypa Freenode channel • h#ps:/ /github.com/pypa/packaging-problems @di_codes