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

Inside The Cheeseshop: How Python Packaging Wor...

Inside The Cheeseshop: How Python Packaging Works (PyGotham 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? Wait, what is Warehouse?

This talk will identify 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

October 06, 2018
Tweet

More Decks by Dustin Ingram

Other Decks in Technology

Transcript

  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 • h#ps:/ /www.youtube.com/watch?v=iLVNWfPWAC8 @di_codes
  6. How to get help • @PyPI, @ThePyPA • 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