Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

  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.



The article covers that just a few paragraphs below.


...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.)


There 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”.


Could 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.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: