I’ve been writing more Python recently and package management seemed simple with pip. Then I learned about virtualenv to isolate your project’s environment. However I recently found a relatively new package manager for Python that combines the best of those worlds and also solves some existing problems called pipenv.
At the conceptual level, pipenv makes Python more equivalent to the development experience with Node with npm and iOS with CocoaPods. I’ve contributed to CocoaPods in the past and so am very familiar with the concept of a file that specifies all your dependencies and then a file that specifies the exact versions.
Package Manager | File with dependencies | File with versions of dependencies |
CocoaPods | Podfile | Podfile.lock |
npm | package.json | package-lock.json |
pipenv | Pipfile | Pipfile.lock |
If you’re writing in Python, definitely check out pipenv!