Hahaha!..
Oh shit, you’re serious.
It’s all fun and games until the wheel variant you need for your hardware acceleration package conflicts with that esoteric math library you planned on using.
I’d like to think that half the crew died along the way, and it got to the point where promotions were being handed out just to keep the ranks filled.
“Shit, we lost another commander. Lets promote one of the remaining lietenants and…hey, Harry, how do you feel about getting another pip?”
Yeah, that was a good one. Worf got that plant petal on him after the away mission, and boom: Wordi.
“Number one, you can’t build that now. Those tanks just took out your north power supply.”
“Captain, I assure you I can build the radar. I only need five units to-”
“THERE ARE FOUR LIGHTS!”
Friend, while I appreciate the time and effort on the docs, it has a rather tiny section on one of the truly worst aspects of pip (and the only one that really guts usability): package conflicts.
Due to the nature of Python as an interpreted language, there is little that you can check in advance via automation around “can package A and package B coexist peacefully with the lowest common denominator of package X”? Will it work? Will it fail? Run your tool/code and hope for the best!
Pip is a nightmare with larger, spawling package solutions (i.e. a lot of the ML work out there). But even with the freshest of venv creations, things still go remarkably wrong rather quick in my experience. My favorite is when someone, somewhere in the dependency tree forgets to lock their version, which ends up blossoming into a ticking time bomb before it abruptly stops working.
Hopefully, your experiences have been far more pleasant than mine.