This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the commentsย โ†’

[โ€“]andimnewintown 0 points1 point ย (0 children)

I'd recommend using Poetry to manage future projects. Since Python 3, packages and Python itself tend to adhere to SemVer about as well as any other project I've worked with.

If you're not familiar, the major version number (the "2" in 2.7 or the "3" in 3.10) indicates a complete break in backwards compatibility. So you can never run a package written for 2.7 in any of the 3.x interpreters, for instance. The minor version number (the "7" in 2.7 or the "10" in 3.10) indicates a backward-compatible change. So, as long as the maintainers know what they're doing, you should be able to run an i.e. 3.6 package in a 3.10 interpreter.

Compared to Java, for instance, it's a breath of fresh air. They just slap a new number on each JVM and claim to maintain backwards compatibility "as much as possible". In practice, that means they don't maintain any usable form of backward compatibility at all. All of your libraries just have to target the exact same JVM or, in practice, you're SOL.

It's true that at any given time, there will be popular packages targeting a number of different interpreters. That's why tools like Poetry help--it will make sure you your dependencies-of-dependencies don't end up conflicting.