5 ms·
Pip freeze will pin explicit as well as transitive dependencies
by im3w1l 4y ago
Pip freeze will pin explicit as well as transitive dependencies
- fnord123 4y agoIt's a hassle to do this correctly and upgrade the dependencies. Use poetry.
- robertlagrant 4y agopip freeze > requirements.txt
- fnord123 4y agoThat only generates a lock file. When you want to upgrade some of your dependencies and recalculate the correct versions, it doesn't help.
- robertlagrant 4y agoHow's that an issue? Here's an example of what happens: https://gist.github.com/robertlagrant/23489d8970ef6b4996030785f1e3ee58 https://gist.github.com/robertlagrant/23489d8970ef6b49960307...
- tomrod 4y agoSomeone else already responded. It's a one-line command. I never could get poetry to work right; it's configs are sort of messy. pip freeze > requirements is built in. The only thing it doesn't pin is the python version itself.
- fnord123 4y agoAs explained elsewhere in this thread, the one line command only generates a lock file. This doesn't manage the dependencies so if you want to upgrade cool-lib and recalculate all the transient dependencies so they fit with the rest of your libraries, you cannot afaik. Bad non-solutions being built in are a bad thing.
- earthboundkid 4y agoThis is not actually true. :-) Pip will install transitive deps from a requirements file unless you add the “no deps” flag. Pip freeze doesn’t pin anything. It just dumps stuff into a text file. If it’s a complete list, it has the side effect of pinning, but that’s not guaranteed by pip freeze in any way.