3 ms·
If a library requires pyparsing>=3 and another library requests pyparsing<3, that’s the end, you are out of business. This article is very much only applicable
by zebracanevra 5y ago
If a library requires pyparsing>=3 and another library requests pyparsing<3, that’s the end, you are out of business.
This article is very much only applicable to Python and other package managers that don't scope dependencies. I think nuget (.NET) also works like this.
In Nodejs land, if you depend on pkg v3, and another dependency needs v2, they'll happily co-exist with no trouble, as long as those v2 and v3 didn't need to talk to each other. If you did only want one version of a package, that is also supported with peerDependencies.
- cozzyd 5y agoCould scoped dependencies even work in Python? Especially if there is any native C code involved (which there will be) I imagine you may get symbol conflicts when trying to load two different versions of the same shared sofile.
- masklinn 5y agoThe article covers that just a few paragraphs below.
- deleted 5y ago[deleted]
- Wowfunhappy 5y ago...I'm probably going to be very sheepish once I find it, but I took a quick look back at the article and I couldn't find this? (I'm not the GP, but I had the same question as they did.)
- masklinn 5y agoThere is a section called “Python is not JavaScript”, the first subsection of which is “technical differences”. In it the author explains that javascript/npm uses local dependencies, so transitive conflicts are not an issue, and it clearly states that this “invalidates several of the arguments above”.