top | item 26019190

(no title)

mbyio | 5 years ago

It is a solved problem for other languages. Pip has soooo many issues.

The biggest IMO is pip doesn't provide a way to pin indirect dependencies, so there is no good way to ensure that other people working on a project are also using the same dependency versions. You can do it with extra tooling of course - and that's what poetry and pipenv do.

discuss

order

alfalfasprout|5 years ago

Even worse-- there's no simple way for pip to print out the full dependency tree (including transitive dependencies). This makes it a nightmare when it complains about some transitive dependency version conflict and you have no idea what's causing it to be pulled in

ak217|5 years ago

Isn’t this what pip freeze is for?

Barrin92|5 years ago

pip freeze only pins the version of direct, not transitive dependencies. Meaning you don't get deterministic builds.

LittlePeter|5 years ago

I thought `pip freeze > requirements.txt` would give you a list of all dependecies, even indirect ones. Am I missing something?

type0|5 years ago

I just so wish that Python tooling would be better, in large part pip is at fault here. If there was no conda I probably wouldn't even touch Python as things look very bleak especially if you need to run anything across different operating systems.