4 ms·
So much this. As someone whose bread and butter is systems programming for things that run on end-user devices, every time I dig into a Python project I feel li
by potatolicious 3y ago
So much this. As someone whose bread and butter is systems programming for things that run on end-user devices, every time I dig into a Python project I feel like I've been teleported into the darkest timeline, where everything is environment management hell.
Even the more complex and annoying scenarios in native-land for dependency management still feels positively idyllic in comparison to Python venvs.
- pjmlp 3y agoWhen I initially started to learn Python (1.6), virtualenv was starting to be adopted, and since then thing have hardly changed. It also helps that even minor versions introduce breaking changes. I doubt anyone really knows Python that well, unless they are on the core team.
- oddthink 3y agoIt was fine, back in the early days (I started with 1.4-ish). I just downloaded the tarball, unpacked, configured, make, installed into /usr/local on my workstation, then downloaded and stuck any packages into site-packages. Numeric was sometime tricky to compile right, but ye olde "configure && make && make install" worked fine. Of course, that worked because 1) I was really only doing one project, not juggling multiple ones, 2) there weren't all that many dependencies (Numeric, plotting, etc.), and 3) I was already up to my eyeballs in the build system with SWIG and linking to the actual compute code, so I knew my way around the system. But every now and then I just shake my fist at the clouds then mutter darkly about just installing the dang thing and maybe not taking on so many dependencies. :-)
- barbariangrunge 3y agoI’m newish to python, I’ve only used it for machine learning projects and some web scraping. Could somebody elaborate on venv? I just started using it but now everyone in this thread is saying how much they hate it. Is there an alternative?
- BryantD 3y agovenv is fine. Remember that this is a self-selected sample of people. You’re going to bump into the flaws and gotchas but it’s a perfectly usable tool.
- throwawaymaths 3y agoUhm so I was professionally setting up ML distros and ML containers for cloud deployments. Venv is not fine, especially if you've seen how other langs do it.
- collinmanderson 3y agoCould you say more what you don’t like about venv compared to how other languages do it?
- throwawaymaths 3y agoJust store your deps in project directory instead of using hidden fucking magic.
- collinmanderson 3y agoThe good news is they're working towards encouraging a standard .venv in project directory. https://peps.python.org/pep-0704/ https://peps.python.org/pep-0704/
- tekknik 3y agoThe hidden magic is adjusting env vars used by python, LD, etc. Adjusting paths only seems like magic until you understand what it’s doing. I’ve done with with plenty of languages including C/C++
- throwawaymaths 3y agoYes I know how it works but try explaining that to someone learning flask at a boot camp.
- deleted 3y ago[deleted]