PyBCN - pipenv - python dev workflow for humans

Please download to get full document.

View again

of 70
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Similar Documents
Information Report
Category:

Technology

Published:

Views: 0 | Pages: 70

Extension: PDF | Download: 0

Share
Description
1. Pipenv! Python Dev Workflow for Humans Andreu Vallbona PyBCN February 2019 2. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Who am I…
Transcript
  • 1. Pipenv! Python Dev Workflow for Humans Andreu Vallbona PyBCN February 2019
  • 2. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Who am I Andreu Vallbona @avallbona Bachelor degree in computer science Web developer at APSL, Mallorca, Spain Mainly developing with Python and Django
  • 3. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 What we do at APSL Web development Systems engineering - devops Data science Mobile apps Consulting and formation
  • 4. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 What it is? it’s a package and virtualenv managing system it’s aimed to replace the use of pip and virtualenv
  • 5. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 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. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Current state of the art Before pipenv we used to create a python environment with virtualenv install some packages freeze the dependencies
  • 7. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 requirements.txt anatomy list of dependencies with pinned versions
  • 8. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Problems Problems
  • 9. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Problems pip and virtualenv are concepts difficult to understand for beginners
  • 10. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Problems requirements.txt is difficult to maintain
  • 11. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Problems we have to remember to update the requirements.txt file
  • 12. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Problems For different environments we need to maintain several requirements.txt files
  • 13. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Problems we do not easily know what python version the project uses
  • 14. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Problems transitive relations A -> B -> C
  • 15. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Solutions Solutions
  • 16. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 What problems does pipenv solve? avoid manually maintenance of the dependencies
  • 17. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 What problems does pipenv solve? easy to know which version of python the project uses
  • 18. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 What problems does pipenv solve? show us the dependencies in a more concise way
  • 19. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 What problems does pipenv solve? update dependencies securely and automatically
  • 20. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 What problems does pipenv solve? allow us to have a default environment and a development environment
  • 21. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Installation Installation
  • 22. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Installation pip install --user pipenv
  • 23. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Pipfile anatomy Specify the packages we want Production and development sections Human readable Toml format Specify the python version
  • 24. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Pipfile.lock anatomy Specify the packages we need Json format Machine readable Easy to parse Pinned versions Hashes
  • 25. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Pipfile.lock anatomy Specify the packages we need Json format Machine readable Easy to parse Pinned versions Hashes
  • 26. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage Usage
  • 27. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv install creates the virtualenv
  • 28. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 29. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv shell activates the virtualenv
  • 30. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 31. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv install <package-name> install a package
  • 32. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 33. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv install <package-name> --dev install a package in the development environment
  • 34. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 35. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv uninstall <package-name> uninstall a package
  • 36. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 37. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv clean uninstall packages not specified in Pipfile.lock
  • 38. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 39. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv graph Displays currently installed dependency graph information
  • 40. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 41. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv run command runs a command inside the virtualenv without activating it
  • 42. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 43. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv check checks for security vulnerabilities
  • 44. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 45. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv lock -r > requirements.txt generates a requirements.txt file
  • 46. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 47. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage pipenv install -r requirements.txt imports a requirements.txt file
  • 48. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 49. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 50. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage load .env files automatically
  • 51. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Usage
  • 52. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 usage pipenv install -c . can discover requirements from the codebase
  • 53. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 usage
  • 54. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 usage pipenv check --unused . show potentially unused dependencies
  • 55. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 usage
  • 56. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Integration Integration
  • 57. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Integration with pyenv pipenv --python 3.4.1 install integrates well with pyenv
  • 58. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Integration with pyenv
  • 59. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 Integration with docker
  • 60. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 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. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 utility Utility
  • 62. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 utility Pipenv Pipes https://github.com/gtalarico/pipenv-pipes Pipenv Environment Switcher
  • 63. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 utility
  • 64. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 caveats Caveats
  • 65. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 caveats It’s slow when locking dependencies Always tries to update dependencies by default
  • 66. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 alternatives Alternatives
  • 67. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 alternatives Poetry https://poetry.eustace.io/ Hatch https://github.com/ofek/hatch
  • 68. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 thanks Thank you! Questions? @avallbona
  • 69. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 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. Pipenv: Python Dev Workflow for Humans Andreu Vallbona - PyBCN - February 2019 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
  • Recommended
    View more...
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks
    SAVE OUR EARTH

    We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

    More details...

    Sign Now!

    We are very appreciated for your Prompt Action!

    x