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

Python Packaging and Distribution

Python Packaging and Distribution

Grand Rapids Python Users Group presentation on Poetry and pipx.

https://github.com/GRPUG/grpug-poetry-demo

Jace Browning

November 18, 2019
Tweet

More Decks by Jace Browning

Other Decks in Programming

Transcript

  1. Poetry

    View Slide

  2. virtualenv +
    pip + pip-tools +
    twine

    View Slide

  3. PEP 518


    [build-system]
    requires = ["setuptools", "wheel"]

    View Slide

  4. Poetry is a...



    [build-system]
    requires = ["poetry>=0.12"]
    build-backend = "poetry.masonry.api"

    View Slide

  5. Poetry does not...



    View Slide

  6. Why not...



    View Slide

  7. Version
    Specification

    View Slide

  8. =1.2.3

    View Slide

  9. ~1.2.3

    View Slide

  10. ^1.2.3

    View Slide

  11. *

    View Slide

  12. { git = “https://github.com/owner/repo”,
    rev = “3846693f2daea2a9f156aba10512161d3a7ed5f6” }

    View Slide

  13. { git = “https://github.com/owner/repo”,
    rev = “v1.0” }

    View Slide

  14. { git = “https://github.com/owner/repo”,
    rev = “develop” }

    View Slide

  15. { path = “../my/local/package” }

    View Slide

  16. Generic
    Commands

    View Slide

  17. $ poetry new

    View Slide

  18. $ poetry init

    View Slide

  19. $ poetry add

    View Slide

  20. $ poetry add --dev

    View Slide

  21. $ poetry lock

    View Slide

  22. $ poetry show --tree

    View Slide

  23. $ poetry run

    View Slide

  24. Packaging
    Commands

    View Slide

  25. $ poetry build

    View Slide

  26. $ poetry publish

    View Slide

  27. $ poetry config http-basic.pypi

    View Slide

  28. https://pypi.org/manage/account/token/

    View Slide

  29. View Slide

  30. $ poetry config pypi-token.pypi

    View Slide

  31. pipx

    View Slide

  32. pip + virtualenv

    View Slide

  33. Why not...



    View Slide

  34. Installation
    Commands

    View Slide

  35. $ pipx install

    View Slide

  36. $ pipx upgrade

    View Slide

  37. Demo

    View Slide