pipenv

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 ManagerFile with dependenciesFile with versions of dependencies
CocoaPodsPodfilePodfile.lock
npmpackage.jsonpackage-lock.json
pipenvPipfilePipfile.lock

If you’re writing in Python, definitely check out pipenv!