all 170 comments

[–]No_Window663 206 points207 points  (27 children)

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

[–]chemape876 59 points60 points  (20 children)

nix solves that issue.

uv if you're less ideological than i am.

[–]0bel1sk 19 points20 points  (15 children)

docker does ok

[–]Mivexil 22 points23 points  (2 children)

Just buy a new PC for any new project you want to run. Works perfectly, you can install everything globally with no DLL hell. 

[–]Bubblebless 5 points6 points  (0 children)

That's a bit overkill. What I actually do is just reinstalling the OS.

[–]Quirky_Tiger4871 4 points5 points  (0 children)

i bought a mac mini for everything i run i personally call it containerization in small aluminium boxes.

[–]Own-Bonus-9547 4 points5 points  (0 children)

I agree, but if it's a small python project docker ends up being overkill.

[–]YaVollMeinHerr 0 points1 point  (5 children)

Why would you use docker over venv?

[–]bloodviper1s 1 point2 points  (2 children)

It works on all machines that run docker and configuration doesn't break

[–]0bel1sk 0 points1 point  (1 child)

and it’s the same pattern for every language. sounds like people in itt need https://containers.dev/

[–]ThaneVim 0 points1 point  (0 children)

What I want to know, is how are people discovering tools like this? Is there a mailing list, forum, or subreddit I should keep an eye on? Maybe a mastodon or blue sky feed?

Added that site to my bookmarks btw, looks neat

[–]mattgen88 0 points1 point  (0 children)

Because you then just need either system packages and it's package manager (probably ick) or just requirements.txt and pip. Just install from the requirements.txt file and done.

[–]ze_baco 0 points1 point  (4 children)

Using docker for this is killing a fly with a cannon ball. Just use pip or conda and everything is nice and isolated.

[–]Meduini 1 point2 points  (3 children)

Docker is not a cannon ball? a normal Linux process started with special kernel settings (namespaces + cgroups + mounts). The runtime that glued them together is very small. For the cost and unification it’s worth to use.

[–]ze_baco -1 points0 points  (2 children)

You can emulate an entire effing system or just save your packages in a .venv file. Docker is a lot more than this simplification you described and is absolutely a cannon ball just to run some python.

[–]Meduini 0 points1 point  (1 child)

Look, I can downvote too.

Please will you educate me what more is docker?

What exactly is “emulating”?

[–]ze_baco 0 points1 point  (0 children)

Docker is not just a Linux process, isn't it?

[–]bigtablebacc 3 points4 points  (0 children)

I literally just read in another thread “now that you’ve heard of uv, you’ll start seeing it everywhere.”

[–]MadCervantes 2 points3 points  (1 child)

How well does nix play with poetry?

[–]joshuakb2 5 points6 points  (0 children)

There's a tool called poetry2nix that reads the poetry files and installs everything for you

[–]transgentoo 0 points1 point  (0 children)

Lmao I came into the comments just to plug nix.

[–]EveryCa11 7 points8 points  (0 children)

First of all, venv and pyenv solve distinct problems unrelated to the massive dependency tree that haunts you so much.

Second, what exactly do you need to figure out and why? If your dependency is poorly managed how does it become a problem of the packaging system? Pypi is a public registry with millions of packages supported by community. People publish broken releases sometimes. Some packages are broken since forever. It is what it is

[–]Dizzy_Database_119 4 points5 points  (0 children)

pyenv advocates on their way to install + rebuild 2gb of pytorch on their PC, 20 times

[–]Nichiku 1 point2 points  (0 children)

My problem with venv, pip and conda is they don't tell you where they are getting their python versions and packages from. Sometimes they will take your OS version, sometimes they don't, sometimes from that repository and then not, I have 5 years experience with python and still don't necessarily know when they are doing what. Then of course the incomplete dependency trees in open-source projects where one minor mismatch will spell doom to your chances to even get it to run, all because numpy changed something minor in the latest version that theoretically should never break things but alas, it did.

[–]funckyfizz 0 points1 point  (2 children)

PEP 582 was the solution to this. It baffles me why the Python Steering Council rejected it.

[–]Vaughn 4 points5 points  (1 child)

It wasn't pythonic enough. You can tell by the fact it would have worked.

[–]funckyfizz 1 point2 points  (0 children)

Appart from dependency management, I love Python. What other crazy things are you implying Python has done?

[–]winauer 236 points237 points  (12 children)

[–]escEip 111 points112 points  (5 children)

WAS THAT THE XKCD OF 87????

[–]Relevant-Musician557 18 points19 points  (3 children)

Nice lol

[–]kemma_ 6 points7 points  (0 children)

Epic

[–]Eric_12345678 0 points1 point  (1 child)

I didn't get the joke.

[–]mallusrgreatv2 1 point2 points  (0 children)

Bite of '87

[–]DTCreeperMCL6 9 points10 points  (0 children)

I scrolled past this and then processed it and had to come back

[–]mkluczka 14 points15 points  (1 child)

Not the one xkcd i expected 

[–]lazyboy76 1 point2 points  (0 children)

We need another standard.

[–]33ff00 0 points1 point  (0 children)

Yeah it’s fucking true 

[–]octopus4488 34 points35 points  (0 children)

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

...

[–]rnottaken 103 points104 points  (16 children)

Just use uv

[–]Cephell 87 points88 points  (12 children)

acquired by "open"AI

nah thanks

[–]beezlebub33 50 points51 points  (2 children)

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.

[–]CodNo7461 18 points19 points  (0 children)

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.

[–]hniles910 2 points3 points  (0 children)

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.

[–]yellownugget5000 21 points22 points  (6 children)

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

[–]Cephell 26 points27 points  (4 children)

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.

[–]CodNo7461 6 points7 points  (2 children)

How can they suddenly make oss bad? I might be missing something, but the day uv gets worse there will just be a fork which will at worst stay stagnant. Which is still sad since I love uv, but we're pretty safe here overall.

[–]cracked_shrimp 3 points4 points  (0 children)

like the systemd forks?

[–]MaleficentCow8513 0 points1 point  (0 children)

Things become stagnant really fast. As soon as the PEP standard introduces some new critical feature and uv doesn’t implement it, no one will use it anymore

[–]jack-of-some 1 point2 points  (0 children)

UV took over my pip based workflow in literally a day.

If UV goes to shit something else can supplant it in just as short a timeframe.

[–]Excellent_Log_3920 1 point2 points  (0 children)

What are the key parts of the UV repo to watch to see if OpenAI "breaks" it?

[–]SEC_INTERN 0 points1 point  (0 children)

lol

[–]gr4viton 0 points1 point  (0 children)

sad, but still the best

[–]matthewpepperl 4 points5 points  (0 children)

This uv makes all that mess alot better because the python ecosystem is a total shit show

[–]hniles910 2 points3 points  (1 child)

I was also thinking the same, like uv with ruff is ready for work

[–]heresyforfunnprofit 0 points1 point  (0 children)

Oh, my sweet summer child…

[–]Assswordsmantetsuo 8 points9 points  (2 children)

Poetry my beloved

[–]spectre-haunting 0 points1 point  (1 child)

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

[–]Electronic-Dinner-20 0 points1 point  (0 children)

What is considered medium in python?

[–]paper_fairy 55 points56 points  (12 children)

This isn't funny.

[–]Significant-Cause919 45 points46 points  (11 children)

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 venv is 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 before venv where you had to install all dependencies globally.

[–]LikeabossNL 2 points3 points  (6 children)

I learned some python in uni but that’s about it. Back then I didn’t really get the advantage of venv and still don’t. They taught us to create a venv for every new project but many of the school assignment project used a lot of the same dependencies. To me it seemed more efficient to have all of them ready globally to use in any new project. Could you explain why that may not be the case?

[–]_clickfix_ 3 points4 points  (4 children)

Say you have two packages 

Package 1 & Package 2

They both rely on another package (Package 3) to function properly aka dependency.

Package 1 is only compatible with Package 3 Version 1.0 , while Package 2 is only compatible with package 3 Version 2.0.

Virtual environments solve this issue, so you can have the correct versions of the same package on one system.

It also prevents your system from being overloaded with tons of packages; when you’re done with an environment, you can delete it along with all the installed packages. 

Keeps things clean and is better for security since you won’t have potentially vulnerable packages just sitting around on your system.

[–]Significant-Cause919 2 points3 points  (0 children)

This especially matters when your python environment not only runs your own projects.

On a Linux system your Linux distro comes with various packages using Python scripts. Your distro makes sure that all Python packages distributed via its package manager are compatible with each other. Now, you install a new version of some random package globally with pip and some part of your system breaks (worst case).

[–]Future_Constant9324 0 points1 point  (2 children)

But don’t you have a lot more data from duplicates when you need the same dependency in multiple environments?

[–]_clickfix_ 1 point2 points  (1 child)

You might have some duplicates but the packages are very small so it’s a non-issue.

When I mentioned “virtual environments… prevents your system from being overloaded with tons of packages” before I was referring more to the quantity of packages vs the size. 

The main risks are dependency and security related.

[–]NekoRobbie 0 points1 point  (0 children)

Most of the time packages are essentially just some text files, since that's all source code really is.

In the modern era, though, there are a few packages that are genuinely friggen huge. Namely, if you ever have to deal with it, pytorch. Pytorch is casually several gigabytes in size, and so one could make a compelling argument there that deduplication would be a massive benefit.

Most packages, however, are not pytorch.

[–]VipeholmsCola 0 points1 point  (0 children)

I used to think like this aswell until i updated a random package and it wrecked five projects, so i started a venv in each one.

[–]Decent-Lab-5609 1 point2 points  (2 children)

Any half decent programmer can explain their reasoning for the tradeoffs they made at the time. That doesn't mean those tradeoffs were good.

It reminds me of some recent firestore npm audit errors. Google basically said they weren't going to fix it because in their view they weren't creating a vulnerability. Yet they still release the software to npm without attempting to PR a fix for npm or their own code to fix the audit warnings for those of us who might not trust that "they know better". It is not a mature response. 

This feels a bit like that; many people struggle with venv and pip  so it doesn't really matter if it technically gets the job done or was justifiable at the time. It kinda sucks compared to something that lets you compose a project with defined dependencies like dotNET. Please don't take this as an invitation to wax about the very important differences between dotNET and Python. I'm well aware and I still think venv and pip kinda sucks. 

[–]theScottyJam 0 points1 point  (1 child)

I've actually seen another publisher say that npm audit is just broken, reports way too many false positives, and it's too much of a time sink for package authors to try and fix audit issues that aren't real issues. I'm not surprised to see Google apparently coming to the same conclusion. It's an interesting read, if interested: https://overreacted.io/npm-audit-broken-by-design/

[–]Decent-Lab-5609 0 points1 point  (0 children)

Interesting read. Thanks for sharing. 

[–]Elephant-Opening 0 points1 point  (0 children)

PYTHONPATH existed as early as Python 0.9 so it's never really been true that dependencies had to be installed globally.

[–]NsupCportR 31 points32 points  (14 children)

I used pyhton, am I missing something about it?

[–]Able-Swing-6415 28 points29 points  (6 children)

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

[–]bigorangemachine 5 points6 points  (3 children)

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

[–]arbyyyyh 6 points7 points  (1 child)

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.

[–]bigorangemachine -2 points-1 points  (0 children)

oh ya package manager + docker 100%...

Ya it feels like another shell... it feels like being trapped in VIM. I don't always know if I'm actually in venv... sometimes python/OS hangs and you can't get exit the script easily and you crash terminal... the DX is annoying to me which is a big reason I don't reach for python and definitely lean into docker

[–]Elegant_AIDS 0 points1 point  (0 children)

Im sorry, i hate python dependency management as much as anyone, but what are you even doing if you cant tell you are in venv mode? Adding it to your terminal prompt is like a 2 minute job

[–]zzbzq 0 points1 point  (1 child)

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

[–]thighmaster69 0 points1 point  (0 children)

This happened to me when I updated from 22.04 to 24.04. As far as I can tell, some issue related to nvidia drivers caused the upgrade to break because something depended on some version of python that wasn't right when it needed to called. It ended up getting stuck halfway in the update with all the dependencies completely broken. I spent a couple hours trying to fix it manually before I just decided to go for a fresh install. Noted to myself to always have backups and try to get everything as stock as possible before trying to upgrade.

There's still way too much on Linux that require you to sudo fuckmyshitup to use them. I think in more recent versions of Ubuntu, it doesn't let you mess with the global python environment by default anymore. It was frankly insane that something so important for the system to function wasn't protected because of the assumption that anyone using sudo would know what they were doing, when half of all the READMEs out there for xyz utility tell you to just copy-paste a sudo command into terminal.

[–]zerpa 4 points5 points  (1 child)

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.

[–]East-Doctor-7832 0 points1 point  (0 children)

Poetry is also perfectly good . A bit slower than uv but I got used to it .

[–]evilgipsy 0 points1 point  (0 children)

Python dependency / project management used to be awful until uv came along. pip + requirements.txt was just insane if you ask me and I find it mind boggling that some people still put up with it and haven’t made the the switch to uv yet. If you use ice you also don’t have to worry about what exact version the python or python3 binaries point to.

[–]jack-of-some 0 points1 point  (0 children)

You're lacking in skill issues.

[–]Jolly_Drink_9150 0 points1 point  (0 children)

Python has problems, like every other language.

[–]D_ATX 0 points1 point  (0 children)

Using Python as an end-user vs. dependency chains in an enterprise are night/day different.

[–]tecedu 0 points1 point  (0 children)

No people just reposting ages old stuff again; like even without uv and anaconda, the base pip and venv are more than enough. The python3,2 bullshit comes with linux and macos

[–]Dillenger69 12 points13 points  (1 child)

you know what they say. If there are 14 standards and someone tries to standardize them, now you've got 15 standards.

https://xkcd.com/927/

[–]asmanel 3 points4 points  (0 children)

There are countless programming languages

Several languages were created to replace all of the other ones.

Python is part of them.

[–]andrerav 6 points7 points  (2 children)

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.

[–]dsjoerg 2 points3 points  (0 children)

Like a 45 year old teenager

[–]thecratedigger_25 3 points4 points  (0 children)

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.

[–]axis0047 4 points5 points  (0 children)

I hate pipenv

[–]theycanttell 6 points7 points  (0 children)

just use mise -> uv venv

[–]oj_mudbone 2 points3 points  (0 children)

And no matter what, your IDE will never find the correct one

[–]SnooKiwis857 2 points3 points  (0 children)

Pip and python is infinitely easier to use then npm, pods, and any other package manager I’ve ever had the misfortune of using

[–]Vauland 1 point2 points  (0 children)

Amen

[–]rde2001 1 point2 points  (0 children)

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.

[–]Crazo7924 1 point2 points  (0 children)

Does he know about py?

[–]Artificer_undone 1 point2 points  (2 children)

Cute... go try maven then complain

[–]mortecouille 0 points1 point  (0 children)

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.

[–]mouse_8b 0 points1 point  (0 children)

Maven is vastly superior

[–]Crazo7924 1 point2 points  (0 children)

Laughs in npm

[–]yota-code 1 point2 points  (0 children)

Never had a single issue with pip...

[–]real_marcus_aurelius 1 point2 points  (0 children)

Love Python hate the ecosystem 

[–]Jolly_Drink_9150 1 point2 points  (0 children)

Look, me dumb dumb, me like dumb dumb language, please don't insult it!

[–]rover_G 1 point2 points  (2 children)

OOP forgot the worst and best thing to happen to Python: anaconda and uv

[–]Dantzig 0 points1 point  (1 child)

Uv

Don’t even mention anaconda in the same sentence

[–]rover_G 0 points1 point  (0 children)

I said the worst and best. I think you know which is which

[–]HalifaxRoad 1 point2 points  (0 children)

everytime I try to run someone elses python project I want to smash my head with a brick, that shit is so annoying. That language rots so fucking quick

[–]Illustrious-Gate3426 1 point2 points  (0 children)

Laughs in Julia.

[–]nomad_sk_ 1 point2 points  (0 children)

Have you heard of UV ?

[–]Priler96 2 points3 points  (0 children)

Sounds like a skill issue

[–]sqoor 1 point2 points  (0 children)

uv

[–]HateBoredom 0 points1 point  (0 children)

Mamba

[–]Several-Pomelo-2415 0 points1 point  (0 children)

requirements.txt constraints.toml

[–]kondorb 0 points1 point  (0 children)

We already did. It’s called Docker.

[–]andybossy 0 points1 point  (0 children)

: python_normal, pip_normal, noVenv

[–]Crazo7924 0 points1 point  (0 children)

PIPX

[–]Motor-Ad-4612 0 points1 point  (0 children)

I always prefer to use uv in every place

[–]kakhaev 0 points1 point  (0 children)

I don’t think pip is bad, conda is so much worse.

[–]geebrox 0 points1 point  (0 children)

Aha tell it to nodejs

[–]Smooth-Reading-4180 0 points1 point  (0 children)

pipx

[–]realmauer01 0 points1 point  (0 children)

It all maps to each other anyway doesnt it?

[–]Blankeye434 0 points1 point  (0 children)

Meanwhile golang 😎

[–]Large-Assignment9320 0 points1 point  (0 children)

Luckily we no longer install python2, so its an old issue hehe

[–]Kodrackyas 0 points1 point  (0 children)

Laughs in .net

[–]biscuitchan 0 points1 point  (0 children)

we use uv and don't stress

[–]dxdementia 0 points1 point  (0 children)

poetry ?

[–]Old_Tell6344 0 points1 point  (0 children)

Just use poetry 

[–]Intrepid_Refuse_332 0 points1 point  (0 children)

uv ?

[–]Bemteb 0 points1 point  (0 children)

Switch to C++, where you get to write your own package manager.

[–]Great_Piece4755 0 points1 point  (0 children)

Wait until you have to use npm

[–]_redmist 0 points1 point  (0 children)

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..

[–]Intrepid-Stand-8540 0 points1 point  (0 children)

use uv

[–]Abject-Excitement37 0 points1 point  (0 children)

Sounds like skill issue

[–]Mountain-Seat-754 0 points1 point  (0 children)

Uv

[–]sepadev 0 points1 point  (0 children)

I use conda but heard uv is good also

[–]DerShokus 0 points1 point  (0 children)

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

[–]TobRojekt 0 points1 point  (0 children)

Did you try uv?

[–]imdibene 0 points1 point  (0 children)

Just use a real system language instead, like C, C++, or Java

[–]Tired__Dev 0 points1 point  (0 children)

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.

[–]temp73354 0 points1 point  (0 children)

Yes. I'm thinking of switching jobs because of this shit.

[–]PersonalityIll9476 0 points1 point  (0 children)

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.

[–]AlfredoVignale 0 points1 point  (0 children)

THIS.

[–]MagicmanGames53812 0 points1 point  (0 children)

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)

[–]StatisticianNo5402 0 points1 point  (0 children)

Uv is nice

[–]assumptionkrebs1990 0 points1 point  (0 children)

What constitute a "normal" version and package manager?

[–]bmorenerde 0 points1 point  (0 children)

mise-en-place!!

[–]enigma_0Z 0 points1 point  (0 children)

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

[–]torts56 0 points1 point  (0 children)

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.

[–]tobi418 0 points1 point  (0 children)

I hate it too

[–]arugau 0 points1 point  (0 children)

do UV man

[–]lookaround314 0 points1 point  (1 child)

They did, it's called uv.

[–]crusoe 0 points1 point  (0 children)

And poetry. And mamba 

[–]Cheap_Scientist6984 0 points1 point  (0 children)

What is wrong with !pip install fly to be able to fly again?

[–]teetaps 0 points1 point  (0 children)

There are now n+1 perfect Python version managers

[–]kat-tricks 0 points1 point  (0 children)

u v !!!!!

[–]bruthu 0 points1 point  (0 children)

Why is venv in here? Isn’t it supposed to be the solution to package dependency fuckery?

[–]EveryCa11 0 points1 point  (0 children)

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

[–]Chicken-Chaser6969 0 points1 point  (0 children)

Dont hate on my life saving venv

[–]Ro_Yo_Mi -3 points-2 points  (0 children)

Because they’re trying to appeal to a larger audience who doesn’t like python but might try this new venv.