We love pip and Fabric for Django deployment. You can see our boilerplate fabfile.py here. Pip, however, isn’t safe to run in an automated fashion. If you attempt to switch branches or repos for one of your editable requirements, you’ll be presented with this input:

What to do? (s)witch, (i)gnore, (w)ipe, (b)ackup

At this time, there is an open bug to solve this problem, but thanks to the trusty *nix toolkit, we have an easy workaround. Enter yes. From its manpage:

       yes - output a string repeatedly until killed

       yes [STRING]...
       yes OPTION

       Repeatedly output a line with all specified STRING(s), or `y'.

I have the most success with the “wipe” option for pip, so now we can simply run:

yes w | pip install -r requirements.pip

This answers w to any prompt that pip displays, making it much more robust to use in an automated environment.