(I think[!]) I understand the principles behind pipenv
(and the other venvs) and frequently use them. However, I've never really understood why pipenv
needs both a Pipfile
and a Pipfile.lock
file.
This answer implies, and this tutorial says
Now, once you get your code and Pipfile.lock in your production environment, you should install the last successful environment recorded:
$ pipenv install --ignore-pipfile
but it doesn't explain why Pipfile.lock
needs to be used. i.e. what does the .lock
file contain that Pipfile
doesn't, and why is Pipfile
good enough to be shared with another developer:
Now let’s say another developer wants to make some additions to your code. In this situation, they would get the code, including the Pipfile, and use this command:
$ pipenv install --dev
but isn't good enough to be used to replicate your environment in production?