One of my favorite things about npm is how simple it makes it to manage production, testing, and development dependencies with the
npm install --save command. I was browsing through the latest packages on PyPI and I came across pip-save which does basically the same thing as npm –save as a wrapper around pip.
From the Project README:
Currently its a big pain while installing new dependencies using pip. After installing the dependency, you need to figure out the version number and then manually add it to your requirements file. pip-save allows you to install/uninstall any dependecy and automatically add/remove it to/from your requirements file using one command only.
I cannot count the number of times where I have read a doc for some package and it said that installation was as simple as
pip install foo. Sure, installing the package is that easy, but keeping track of versions is a whole different story.
One approach is to dump every single package into your requirements.txt with
pip freeze > requirements.txt but this is troublesome because it also includes dependencies which clutter up the requirements.txt file.
What I then end up doing is finding the package on either GitHub or PyPI, figuring out what the latest version is, putting the package with the version into my requirements.txt file and then running
pip install -r requirements.txt.
pip-save does exactly what it says on the tin and solves this annoying workflow in one step. It installs whatever package you want, and adds it to your requirements.txt with the version that you installed. Simple, Rustic, Yes.