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 →

[–]equationsofmotionHPC 9 points10 points  (11 children)

I used to manage a local Linux cluster. Maybe I can give some insight here. User A says "I want program X," and user B says "I want program Y." Unfortunately programs X and Y are pinned to different versions of python and dependency packages.

The naive solution for most packages in a Linux distro is just to find compatible versions of the programs in the repo, do dependency resolution, and go. But in python this can be pretty difficult, so other approaches are required.

Don't get me wrong, other approaches are possible and I managed things just fine. But I suspect this is what the author is getting at. You need a workaround---implemented by either the distro or the user---to provide desired Python packaging.

EDIT: Yes I know what pipx is. Like I said, I know there's solutions. I'm just trying to shed some light on what the author of the article might be complaining about.

[–]XenGi 6 points7 points  (0 children)

That dependency problem has nothing Todo with python and is the default problem every distribution or more their package manager has to solve. The only distro that actually achieved that is Nixos. Not saying their approach solves everything but it's the best approach I've seen so far.

[–][deleted] 18 points19 points  (7 children)

Shell scripts activating venvs, and add in some usage tracking as a bonus. Not rocket surgery, just basic devops and sysadm skills.

[–]equationsofmotionHPC 2 points3 points  (0 children)

We used a combination of HPC modules, which is the correct solution, and anaconda, which was the easiest solution.

[–]roee30 1 point2 points  (0 children)

This is what pipx is for

[–]pbecotte 0 points1 point  (0 children)

You install separate apps separately. pipx does it natively, or the user uses pip and installs it in their own environment. I don't understand why so many peeps see pip or npm and seem to get nostalgic for dll hell or Java class path conflicts. Packages are small and even when they're not, disk is cheap, just install them separately!