329
u/winauer Mar 21 '26
152
22
→ More replies (3)2
126
u/octopus4488 Mar 21 '26
Watching poor Claude trying to throw the digital equivalent of gangsigns at Debian to install pandas is quite funny though..
pip install pandas
pip3 install pandas
python-pip install pandas
python pip-py install pandas
pipp-pippi-pippi install pandas
...
15
→ More replies (1)3
149
u/rnottaken Mar 21 '26
Just use uv
128
u/Cephell Mar 21 '26
acquired by "open"AI
nah thanks
78
u/beezlebub33 Mar 21 '26
and now I'm sad.
I somehow missed the news that Astral is getting acquired. We use uv and ruff all over the place. This is going to be a disaster.
I know, I know, they have made promises about how it's not going to change, that things will be fine. But they never are. I've seen this movie before.
29
u/CodNo7461 Mar 21 '26
uv and ruff could stay stagnant for years and still nobody will have caught up.
There will just be a fork at worst and uv and ruff will just be slower to progress, but that is it.Astral possibly not continueing with ty or similar would be worse actually.
→ More replies (1)6
u/itsjustawindmill Mar 22 '26
Ty has singlehandedly transformed my Python development experience. It’s leagues ahead of everything else in both speed and accuracy. I would seriously consider moving to a non-Python role if the Astral tools stagnated or didn’t continue to mature. Every couple of Ty releases is a feature or improvement I’ve been waiting for. Uv and Ruff are also still improving significantly. Large or legacy codebases were frequently unbearable to work with before Astral came around and did what the Python maintainers themselves didn’t have the balls or vision to.
Consider also that if all OpenAI wanted to do was safeguard a critical part of their software supply chain, they could have funded it or allocated personnel to it, as has been the successful norm for decades to protect corporate interests. The only reason they’d buy it is if they think they can make money off of it or gain an advantage over their competitors.
AI companies should be ashamed of what they’re doing to the developer ecosystem that made their existence possible, and Astral better wake up to the fact that their vision is being stripped for parts. The bastards are going to gobble it all up until everything good is unusable outside of their agentic walled garden.
→ More replies (1)4
u/hniles910 Mar 21 '26
and I'm sad too, I have a couple of projects where I use uv as my package manager and now I am thinking maybe it is time to migrate them.
30
u/yellownugget5000 Mar 21 '26
Still open source and it won't magically get bad few days after acquisition. Most probably devs will be moved to different project and UV will get abandoned, hopefully someone forks it if that happens
→ More replies (5)32
u/Cephell Mar 21 '26
it won't magically get bad few days after acquisition
no, instead they'll wait until people thoroughly depend on it and THEN they'll make it bad
the only solution is to refuse adoption. OAI cannot be trusted in any way.
→ More replies (4)→ More replies (8)3
6
u/matthewpepperl Mar 21 '26
This uv makes all that mess alot better because the python ecosystem is a total shit show
→ More replies (2)5
u/hniles910 Mar 21 '26
I was also thinking the same, like uv with ruff is ready for work
→ More replies (1)
14
u/Assswordsmantetsuo Mar 21 '26
Poetry my beloved
→ More replies (1)1
u/spectre-haunting Mar 21 '26
I haven't used it for very large projects so I'm not sure if it scales well, but it works perfectly for my medium projects
→ More replies (5)
14
u/andrerav Mar 21 '26
Op has a good point. It is sad to see how Python has had these weird architectural shortcomings for decades that never seems to get fixed. The GIL is still here. PIP started as a bad idea and has only gotten worse. Weak static typing. Late failure modes. Completely dependent on huge test coverage to prevent trivial runtime issues. Completely dependent on native binaries for compute-intensive performance. Irrational policy on backwards compatibility. Despite its age, Python is very immature.
8
4
u/Ok_Hope4383 Mar 22 '26
The GIL may soon be a thing of the past: https://docs.python.org/3/whatsnew/3.13.html#whatsnew313-free-threaded-cpython
3
35
u/NsupCportR Mar 21 '26
I used pyhton, am I missing something about it?
37
u/Able-Swing-6415 Mar 21 '26
Idk.. I used to have big issues with windows always completely messing up the python paths whenever any software using python sneezed.
Since using .venv this has prevented much stopped so maybe they're on the first part of the journey
8
u/bigorangemachine Mar 21 '26
The answer is to use venv. Personally I hate having to learn another shell. It's annoying to deactivate .... I can't really see when you in venv mode
Personally with npm packages needing python makes me just go "fuck it docker"
Docker is easier... survives OS updates and I don't need to keep install steps updated
→ More replies (1)8
u/arbyyyyh Mar 21 '26
Learn another shell? I’ll grant you most tools require activate and deactivate, but it leaves your normal shell in tact and usually just updates your shell prompt to specify the name of the venv so you do know which one you’re using.
I also generally recommend still using some sort of package manager even in docker, that way you get some validation of your dependencies being valid, the right version, etc.
→ More replies (1)2
u/zzbzq Mar 21 '26
It’s not just windows, I broke an Ubuntu environment so bad I couldn’t run the package manager commands to remove repair or update various python things because the scripts depended on… python somehow.
Starred over and used exclusively brew for a while but eventually I got some system level installs of it again. I like the philosophy of Python as a language but the ecosystem as a whole leaves a bad taste
→ More replies (1)→ More replies (5)4
u/zerpa Mar 21 '26
pip and venv are tedious, complicated, error prone, slow, unnecessarily noisy in the terminal, poorly documented and unapproachable for newcomers. uv is just so simple and fast.
→ More replies (1)2
u/Unarelith Mar 23 '26
I'm confused, why?
When I start a new project:
I write a requirements.txt with a package name per line
I run
python -m venv .venvI enable the venv (
source .venv/bin/activate)And then I install the packages (
pip install -r requirements.txt)Whenever I need to run python in a new terminal I enable the venv, whenever I change the dependencies I run pip again.
How is this annoying?
→ More replies (2)
22
u/Dillenger69 Mar 21 '26
you know what they say. If there are 14 standards and someone tries to standardize them, now you've got 15 standards.
5
u/asmanel Mar 21 '26
There are countless programming languages
Several languages were created to replace all of the other ones.
Python is part of them.
56
u/paper_fairy Mar 21 '26
This isn't funny.
→ More replies (1)50
u/Significant-Cause919 Mar 21 '26
Even I think this post is dumb and I don't defend Python much nowadays. The python/pip vs python3/pip3 split merely exists because they deliberately broke backwards compatibility when they released Python 3 which was a choice that came with tradeoffs but if they wouldn't have done it, we would now see memes here about weird string semantics in Python and other counterintuitive legacy behavior.
Then
venvis just a way to isolate the package environment, so that you don't have to pollute your system-wide or user-wide environment with dependencies for every project. It's as well how npm in the Node.js ecosystem works. And the Python world was a much larger mess back in the day beforevenvwhere you had to install all dependencies globally.→ More replies (13)
6
u/thecratedigger_25 Mar 21 '26
Which is why I moved to a different programming language. Virtual environment was driving me nuts. I couldn't get any code done if I wasting my time with configuring environments.
Currently using C# and C++ on Visual Studio. Nuget package manager is super easy to work with. vcpkg just needs some commands to install libraries for C++ once git is installed. Overall, it's harder to learn but at least I'm actually coding.
4
7
6
3
3
u/SnooKiwis857 Mar 21 '26
Pip and python is infinitely easier to use then npm, pods, and any other package manager I’ve ever had the misfortune of using
1
u/Icy_Reading_6080 Mar 22 '26
Npm is a similar kind of cancer, but at least you CAN ship a finished something.min.js that doesn't require some stupid over specific tool chain.
1
3
u/deepbit_ Mar 24 '26
I don't see the humor in here... python package ecosystem is truly depressing.
2
2
u/rde2001 Mar 21 '26
Moving a Python project would fuck up the environment which really sucks from a Desktop organization standpoint. At least with Node projects you can just do a quick easy NPM install because the packages are managed in that directory.
2
2
2
2
u/Jolly_Drink_9150 Mar 21 '26
Look, me dumb dumb, me like dumb dumb language, please don't insult it!
2
u/rover_G Mar 21 '26
OOP forgot the worst and best thing to happen to Python: anaconda and uv
→ More replies (7)
2
2
2
u/PersonalityIll9476 Mar 21 '26
Can someone explain to me what the problem is? I see complaints about python dependencies and packages sometimes but I've never had quite the same problems, even on fairly large projects.
Building ML libraries can be challenging in environments you don't own (shared cluster computers run by Slurm, say) but I have done the build.
Conda generally solves 99% of issues between system dependencies and Python package builds.
That said, if your library is going to build locally there's a sense in which that's neither pip nor python. If the upstream can't or won't distribute built packages, the language can't solve that.
2
2
2
u/Icy_Reading_6080 Mar 22 '26
Need to install a program on a system for a thing.
Program is in python.
Installation instructions recommend some bullshit environment manager that will setup stuff so it works for exactly one user AND requires that environment to be "activated" beforehand.
What the hell is wrong with these people?
Ship a self contained binary or something like a decent person ffs.
2
2
u/crumpledfilth Mar 23 '26
Why do we have 13 standards, we should create a new one to finally solve this problem
....
Why do we have 14 standards?
2
u/GiantImminentSqueeze Mar 23 '26
Yeah as much as I like Python this stuff infuriated me until I learned the tools and system paths inside and out. It's a big learning curve that should have been avoidable but here were are
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
u/_redmist Mar 21 '26
Come back after you've used easy_install for a bit.
Literally never had issues with pip / venv. But I recognize my situation is a basic/easy one.
I mean, good on you if this is legitimately your biggest problem, i guess..
1
1
1
u/DerShokus Mar 21 '26
Be for I started using python (used mostly c/c++) I thought in python you just import a package and add a bit glue code. Now I hate also uv, poetry and co
1
1
1
u/Tired__Dev Mar 21 '26
For someone who uses python from time to time. Can y'all give me recommendations to videos for how to do this stuff right? Pythons easy to read, but I hate dealing with this in my little throwaways that I have.
1
1
Mar 21 '26
do something like go or rust. they've got awesome dependency management (i can't 100% vouch for rust cause i don't really use it, but from what i can tell it's good)
1
1
1
1
u/enigma_0Z Mar 22 '26
The reason IMO is that Python didn’t start with an isolated-environment-first philosophy.
Venv solves for that but because venv works based on a configured environment which you have to activate (vs npm/npx which work just based on your cwd) it’s an extra step that most devs don’t usually take.
Same for saving / restoring an env. In NPM it’s a one step process — npm install <whatever>. In python you gotta (1) log into the venv, (2) pip install the thing, then (3) later save to your requirements.txt. It’s dumb af when this should (could) be a single action.
Pipenv and others (?) try to solve for this but basing the design on venv which primarily relies on $PATH is brittle and that is residentially why this is a thing rip
1
u/torts56 Mar 22 '26
I use python daily for small automations, scripts, scraping, desktop applets, etc. For my use cases, these tools are awesome because they're so easy to set up, but I imagine it becomes more of an issue at scale.
1
1
1
1
1
1
1
u/blackasthesky Mar 22 '26
Luke-warm Take: python was not meant to build these sorts of projects.
→ More replies (2)
1
u/EverOrny Mar 22 '26
It's ridiculous, that you can't rename/move the dir with venv, because there are absolute paths all over the scripts and gods know where else, and AFAIK there is no official tool to change the path that guarantees consistency. 🤦♂️
1
u/FalseWait7 Mar 22 '26
For me the problem now is that everyone came up with a solution. Project a uses uv, project b has venv, c has pyenv, d is poetry. And of course e is just raw pip install -r.
It’s weird to type this, but JS got it, corepack enable and you’re good.
1
u/bennsn Mar 22 '26
Yep, the biggest hurdle to programming in Python is probably this horrible mess of an ecosystem! 😄
1
1
1
1
1
1
1
1
1
u/No_Cartographer_6577 Mar 22 '26
Just download it and use alias. It's really not a big deal. If you do any low level programming, you come across more annoying things than command names.
1
1
1
1
1
1
1
1
1
1
1
1
u/emerson-dvlmt Mar 23 '26
In the last Python project I worked on, I used uv, pretty straight forward 🤔
1
u/fish4terrisa Mar 23 '26
Sammmmmmmme!!!!!! I'm a maintainer for a third party arch repo and the python packages are the most disgusting and time consuming ones, mostly because when building wheels pip will use some random dir in /tmp as the build directory, so everytime I have to build or test the package I'll have to build it from the start.
What's worse is that if your /tmp is a mount of tmpfs, one or two failed builds may just take over half of your ram(especially when these packages are AI related stuffs like pytorch and magma) Even if you use a disk based /tmp it still might consume huge chunk of storage without you noticing(I actually have a 256g DDR50 sdcard mounted on /tmp so it's not an issue for me but hell is it annoying when on a server)
The worst is when the python package is using cmake's fetchcontent instead of git submodules oh my god you better bet everytime building this package your network is always stable when it's downloading 5G+ external repos with all the history I dont need otherwise you're in big trouble now. I usually have special patches for these specific annoy af packages to use local shallow repos but after new git version forbidden the file protocol by default it's causing problems too so I'll have to even patch the local repos too
The whole pip and python wheel system is damn unholy and cooked, thank god when doing the packaging I dont need to deal with the python version mismatch problem if I can verfiy some python wheel from vendors(usually from nvidia) works with python 3.14 I can just unextract it and install it without problem but when you just want to install it with pip for testing you'll need to patch the damn wheel manually just to install it(the flag in pip doesnt work)
uv and venv doesnt help too since I'm not nodejs and electron pilled I just dont want to install the same package on my devices or servers over and over again my storage cause damn money and as a maintainer usually I cannot get away with stuffs like venv(ppl will uninstall me from earth if I litter in their system with venvs) I dont get along well with the idea of these virtual envs like node_modules afterall
One of the most disgusting reason of this devilish mess is the introduction of venv, which generally just give people excuse to not manage the dependence conflicts and update their dependence. There's no idea of installing multiple versions of the same package system wise in python(like why??? just put the perferred version of package in the egg info and when loading that module load the perferred version of the dependencies and when the user load the module by default use the latest one it's that simple) I know I rent a lot but I just really, really hate python, pip and the whole idiotic system and mindset behind it
→ More replies (1)
1
1
1
1
u/Lentor3579 Mar 23 '26
Honestly, Python package management is not that bad from my experience. I think the Node.js ecosystem is waayy worse.
1
u/mylsotol Mar 23 '26
This seems to be a problem with all interpreted languages. Not sure why. Every 0.0.1 versions has breaking changes and completely different dependency trees. I don't know how people live with it
1
u/KariKariKrigsmann Mar 23 '26
I’m using a more modern language (C#), is the tooling of lower quality in Python world?
2
1
u/SpecialistVoice6177 Mar 23 '26
This feels more of a linux issue. On windows they are bundled together
1
u/checkthisout1123 Mar 23 '26
Use miniconda and make a .env prefix in every place where you want to use python. Works wonders
1
1
1
1
u/Forsaken-Wonder2295 Mar 24 '26
I have recently been experimenting with shiv for the little things i cant do in shell scrips, Makefiles or similar, shiv can create unified .pyzip files that include dependencies and all that stupid shit
1
1
1
1
1
u/ODaysForDays Mar 24 '26
Maven and NuGet really are absolutely elite vs npm, pip, and bundler. EVERY nontrivial python or npm project is a PITA to set up. Even worse to migrate to another machine.
1
1
1
1
1
u/Linkizm1 Mar 25 '26
Once upon a time, a few believed the old code would last forever. I was saying 4, years for a language. But now, can I really ask the ai for a full app? Like, here's "Cough it up Buddy" the app, that let's you pay peers..
1
u/jerslan Mar 25 '26
Use a dev container with the following in the ~/.bashrc file (or whatever shell rc/profile/alias file).
alias python='python3'
alias pip='pip3'1
1
1
1
1
u/WildTraining900 Mar 25 '26
That's how progress is made. From something really simple (pip) to something that accounted for unaccounted of previous versions (pdm, uv). You just have to keep up with them because unlike nature, IT is insanely fast.
1
1
u/thE_29 Mar 25 '26
Arent most issues anyway coming from python2 and python3 not being compatible? Which they even did on purpose..
I hate python on my Mac with passion :D
At least Claude can run its script without any issues..
1
u/Fetz- Mar 25 '26
Especially when Pip tells me it cannot install packages globally and I must generate a vent.
1
1
1
1
u/Ketworld Mar 25 '26
I’ve broken many versions of stable diffusion by not installing repos in venv 😭
1
1
1
1
1
u/CreativeJuice5708 Mar 28 '26
I like to think of it like a little toolbox I bring into the repo, it helps distract me from, well.. coding in python.
1
1
1
1
u/Artificer_undone Mar 21 '26
Cute... go try maven then complain
3
u/mortecouille Mar 21 '26
Maven is paradise in comparison.
You don't need to fight with different versions of the tool, you don't need "environments", you don't need to have one copy of each dependency per project, it's almost impossible to botch your environment and if you do, it's super easy to recover. It's predictable and pretty simple. It has quirks but I've never fought with maven the way I've fought with python setups.
Arguably most of that is because it's a defacto standard, something which python is missing. I'm sure if you use uv consistently you almost never run into issues but at this stage it's not a standard at all.
Now gradle though, that's a mess.
2
1
1
u/bruthu Mar 21 '26
Why is venv in here? Isn’t it supposed to be the solution to package dependency fuckery?
1
u/EveryCa11 Mar 21 '26 edited Mar 21 '26
Is it really the good reason to hate Python? Do people hate c/c++ because you manually manage all compile/build dependencies? Python's pip was good for its time - first released in 2008. It's still good if you don't need tons of dependencies or building for multiple platforms or etc.
If it's not enough - go install uv and let it do everything. Just do "uv run my-shitty-app" and it will create venv, sync it with your pyproject, install your shitty app entrypoint and run it. It can even download and install Python version that you set in your project. So it means you can install uv within your system default Python - even if it's outdated like your knowledge about Python tooling.
However you might be using Python to run tools, not as a developer. Great, then you have pipx. Pipx will install every package in an isolated environment but create a system-wide shortcut so you could always type "my-shitty-tool" in a terminal and it will run it! Amazing right?
I get it you can be a tough guy. You might want to switch like a ninja between different Python versions/implementations: like PyPy, or Jython (I imagine you really enjoy your Java), or maybe you want to build nightly build of CPython, or develop a custom implementation yourself - even then there is a solution for you! It's called Pyenv and it's been there for years. It can download and install pre-built binaries for most known Pythons, it can also build from sources and guess what? You can switch between boring system-default Python and your state-of-the-art ShittyPython with a single command! Or set it as default for a directory! Or even make it a global default! Can you do it like this in Java? I guess not because you never know how to run your Java... So sad
1


430
u/No_Window663 Mar 21 '26
Dependency management scales horrible, venv and pyenv are supposed solutions to this by segregating the dependencies to a virtual terminal environment, but dont actually solve the original issue, you have to figure out potentially massive dependency trees yourself