O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Pipenv python dev workflow for humans

528 visualizações

Publicada em

Pipenv: it’s a package and virtualenv managing system it’s aimed to replace the use of pip and virtualenv.

Publicada em: Internet
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Pipenv python dev workflow for humans

  1. 1. Pipenv! Python Dev Workflow for Humans Andreu Vallbona Pycones 2018
  2. 2. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Who am I Andreu Vallbona @avallbona Bachelor degree in computer science Web developer at APSL, Mallorca, Spain Mainly developing with Python and Django
  3. 3. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 What we do at APSL Web development Systems engineering - devops Data science Mobile apps Consulting and formation
  4. 4. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 What it is? it’s a package and virtualenv managing system it’s aimed to replace the use of pip and virtualenv
  5. 5. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Created by Kenneth Reitz Creator of many useful projects such as: Requests: HTTP for Humans Maya: Datetimes for Humans Records: SQL for Humans Requests-HTML: HTML Parsing for Humans
  6. 6. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Current state of the art Before pipenv we used to create a python environment with virtualenv install some packages freeze the dependencies
  7. 7. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 requirements.txt anatomy list of dependencies with pinned versions
  8. 8. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Problems Problems
  9. 9. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Problems pip and virtualenv are concepts difficult to understand for beginners
  10. 10. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Problems requirements.txt is difficult to maintain
  11. 11. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Problems we have to remember to update the requirements.txt file
  12. 12. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Problems For different environments we need to maintain several requirements.txt files
  13. 13. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Problems we do not easily know what python version the project uses
  14. 14. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Problems transitive relations A -> B -> C
  15. 15. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Solutions Solutions
  16. 16. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 What problems does pipenv solve? avoid manually maintenance of the dependencies
  17. 17. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 What problems does pipenv solve? easy to know which version of python the project uses
  18. 18. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 What problems does pipenv solve? show us the dependencies in a more concise way
  19. 19. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 What problems does pipenv solve? update dependencies securely and automatically
  20. 20. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 What problems does pipenv solve? allow us to have a default environment and a development environment
  21. 21. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Installation Installation
  22. 22. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Installation pip install --user pipenv
  23. 23. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Pipfile anatomy Specify the packages we want Production and development sections Human readable Toml format Specify the python version
  24. 24. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Pipfile.lock anatomy Specify the packages we need Json format Machine readable Easy to parse Pinned versions Hashes
  25. 25. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Pipfile.lock anatomy Specify the packages we need Json format Machine readable Easy to parse Pinned versions Hashes
  26. 26. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage Usage
  27. 27. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv install creates the virtualenv
  28. 28. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  29. 29. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv shell activates the virtualenv
  30. 30. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  31. 31. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv install <package-name> install a package
  32. 32. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  33. 33. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv install <package-name> --dev install a package in the development environment
  34. 34. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  35. 35. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv uninstall <package-name> uninstall a package
  36. 36. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  37. 37. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv clean uninstall packages not specified in Pipfile.lock
  38. 38. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  39. 39. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv graph Displays currently installed dependency graph information
  40. 40. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  41. 41. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv run command runs a command inside the virtualenv without activating it
  42. 42. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  43. 43. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv check checks for security vulnerabilities
  44. 44. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  45. 45. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv lock -r > requirements.txt generates a requirements.txt file
  46. 46. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  47. 47. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage pipenv install -r requirements.txt imports a requirements.txt file
  48. 48. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  49. 49. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  50. 50. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage load .env files automatically
  51. 51. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Usage
  52. 52. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 usage pipenv install -c . can discover requirements from the codebase
  53. 53. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 usage
  54. 54. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 usage pipenv check --unused . show potentially unused dependencies
  55. 55. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 usage
  56. 56. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Integration Integration
  57. 57. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Integration with pyenv pipenv --python 3.4.1 install integrates well with pyenv
  58. 58. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Integration with pyenv
  59. 59. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Integration with docker
  60. 60. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 Integration with platforms and editors integrated with platforms and editors Heroku (Cloud Hosting) Platform.sh (Cloud Hosting) PyUp (Security Notification) Emacs (Editor Integration) Fish Shell (Automatic $ pipenv shell!) VS Code (Editor Integration) PyCharm (Editor Integration)
  61. 61. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 utility Utility
  62. 62. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 utility Pipenv Pipes https://github.com/gtalarico/pipenv-pipes Pipenv Environment Switcher
  63. 63. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 utility
  64. 64. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 caveats Caveats
  65. 65. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 caveats It’s slow when locking dependencies Always tries to update dependencies by default
  66. 66. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 alternatives Alternatives
  67. 67. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 alternatives Poetry https://poetry.eustace.io/ Hatch https://github.com/ofek/hatch
  68. 68. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 thanks Thank you! Questions? @avallbona
  69. 69. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 resources of interest https://www.pythonforbeginners.com/basics/how-to-use-pip-and-pypi https://realpython.com/pipenv-guide/ https://www.kennethreitz.org/essays/announcing-pipenv https://nvie.com/posts/better-package-management/ https://nvie.com/posts/pin-your-packages/ https://medium.com/@jimjh/managing-dependencies-in-python-applications-b9c93dda98c2
  70. 70. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - Pycones - October 2018 resources of interest https://www.promptworks.com/blog/pin-all-dependencies https://www.well-typed.com/blog/2008/04/the-dreaded-diamond-dependency-problem/ https://medium.com/@DJetelina/pipenv-review-after-using-in-production-a05e7176f3f0 https://chriswarrick.com/blog/2018/07/17/pipenv-promises-a-lot-delivers-very-little/ https://np.reddit.com/r/Python/comments/8jd6aq/why_is_pipenv_the_recommended_packaging_tool_by/ http://journal.kennethreitz.org/entry/r-python

×