this post was submitted on 02 May 2024
60 points (81.2% liked)
Programming
17312 readers
303 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
tldr:
I didn't realize pip and venv didn't work... that's a pretty big deal breaker for a lot of people, myself included.
I'm not a Nix user, but doesn't Nix make both pip and venv obsolete in a way? Nix is a package manager (which could be used to package anything including Python packages/modules) and also allows you to create environments that include only certain packages of certain versions.
Sounds good in theory, until you want to install scikit-image or other Python libraries which need complex builds.
python3Packages.scikit-image
appears to be available and non-broken in nixpkgs; on my machine, I get/nix/store/w8681ncsw92cn4gq6gyraw4z19r0r6c3-python3.11-scikit-image-0.21.0
. Do you have an actual example?I understand your point, but given nixpkgs' position in the community, it might be a moot point.
pip and venv are working, but packages that require compiling or ship binaries by itself usually won't work out of the box. They depend on gcc or libopenssl to be globally available: the whole gist of Nix not doing 😅
I've found devenv.sh to be most convenient way to handle such projects. You can define the dependencies for a project. It has explicit python/venv/requirements.txt/poetry support. It works for NixOS, but also other distros and MacOS. Very convenient to share and lock development tools and libraries across a team.
this is the one reason i dont board the hype train for "customizable" distros: arch, nix, gentoo and so on unless im specifically looking to learn.
i use linux so i can install it and forget which distro im actually using.
I have been on arch professionally for ~5 years.
I am a GUI fan and I don't like fucking around with the OS. In fact, I don't even want to think about it at all.
So far it hardly required any maintenance (much less than Ubuntu, Windows or Mac, at least for my workflows).
And the only fucking around I did with it was the first two days setting everything up just the way I like.
To be fair, I already had extensive linux knowledge at the point of switching to arch - through ~4 years of constantly breaking my Debians and Ubuntus every couple of months.
i find arch to sometimes break on updates for me. it always turns out to be either:
1- bleeding edge package update made it bleed 2- needed to be watching announcements and change some config file 3- i havent updated in a while and it dislikes that.
i like having 100% automatic updates.
Depends on what yoy install I guess.
It only broke twice for me from updates during the 5 year period. 1. grub 2. openjdk
and the openjdk one simply didn't update until I uninstalled the old one and reinstalled the new one.
it is for advanced users