However there are a few project that tries to solves this, but the fact that the Python community has not decided on one cripples any initiative to fix it.
However there are a few project that tries to solves this, but the fact that the Python community has not decided on one cripples any initiative to fix it.
The above is possible for Python as well; I sketched out an implementation which patches __import__ to handle dependency resolution by version, but.... I'm afraid it's a bit unpythonic.
foo ~= 1.8.2
bar ~= 2.4.1
baz
(These are only requested dependencies, resolved are not specified).I am not sure what ~= means in requirments.txt, but I'm gonna guess it means something like ~> or ^. With as system like that if everyone follows semver correctly we are fairly okay. The problem is that not everyone does and you have no guarantee that deploying the same code at two points in time t1 and t2 will produce the same application since one of the dependencies might have released new code.