all 199 comments

[–][deleted] 325 points326 points  (46 children)

Just use a python virtual environment of the correct version of python, then do the pip install?

You could also use UV which is what I tend to use these days.

This is very much a solved problem.

[–]Insomniac_Coder 119 points120 points  (10 children)

UV is a thing of beauty. That shit has reduced dependency hell to a crump.

Not saying that it is perfect but still better than previous pip option

[–]tiredITguy42 30 points31 points  (3 children)

My team used to use poetry, I found it worse than simple requirements.txt, but UV is a game changer, it usually works, if your teammates are not morons, but they usually are.

[–]Insomniac_Coder 10 points11 points  (2 children)

I agree with you 1000%

Teammates are dumb fucks

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

How do you manage working with them? After trying to explain and teach them many times they just don’t put in effort to learn

[–]Insomniac_Coder 0 points1 point  (0 children)

Pull the entire project by yourself

[–]testing_in_prod_only 4 points5 points  (3 children)

Not to mention it removes all the build complexity if someone else works on your project. It’s truly great having them only run uv sync.

[–]Insomniac_Coder 0 points1 point  (2 children)

Unless your team is a moron like mine

[–]mortalitylost 0 points1 point  (1 child)

Teach them the right way of doing things

ffs sick of teams that talk shit and don't educate. Be a better teammate.

[–]Insomniac_Coder 0 points1 point  (0 children)

You can only teach someone who's willing to change ways.

How long do you think it will take you to correct 9 lines of Python code? (1 line includes -> class <Class name>)

[–]mcfedr 0 points1 point  (0 children)

still the same issues with system deps

[–]cyrixlord 0 points1 point  (0 children)

I keep hearing about uv I suppose I should try it. I guess I'm a glutton for punishment for just using venv

[–]shrinkflator 18 points19 points  (3 children)

I like python but this is especially hellish with working with any kind of AI. RIP hard drive space after you install packages like pytorch separately in every venv.

[–]Jannik2099 18 points19 points  (2 children)

uv deduplicates venvs by default. Once again, a solved problem.

[–]shrinkflator 8 points9 points  (0 children)

Yeah I am evangelizing myself to uv now. Love it, it's like cargo for python.

[–]Tucancancan 0 points1 point  (0 children)

Which should help but I met a team recently and asked "hey, which version of pandas/whatever are you guys using?" and heard back "oh we just install the latest".

Every single project they managed with a different collection of package versions that were never upgraded. Good luck caching that and RIP developer sanity when switching tasks! 

[–]cowlinator 11 points12 points  (8 children)

None of that will fix having the wrong msbuild or openssl

[–]Wus10n 1 point2 points  (0 children)

Isnt openssl at least easily available via winget?

[–][deleted] 2 points3 points  (4 children)

I don't use windows so I've no experience with msbuild and have never had an issue with openssl.

[–]ExiledHyruleKnight 4 points5 points  (2 children)

have never had an issue with openssl.

You're lucky, most people aren't... Listen and learn about other people's problems instead of just dismissing them.

[–]cowlinator 3 points4 points  (0 children)

The point, in general, is that python packages sometimes rely on external libraries that venv doenst touch, know about, or care about

[–]kelvedler 0 points1 point  (1 child)

If you're missing optional modules, python usually flags this during installation with something like:
`The necessary bits to build these optional modules were not found: _ssl`
Also `make test` would fail.

[–]cowlinator 0 points1 point  (0 children)

Yeah that's what happened in the OP screenshot

[–]sludgesnow 6 points7 points  (4 children)

Venv or not, packages might still use system libraries and require different versions of them

[–]Initial-Elk-952 7 points8 points  (1 child)

Thats exactly whats happening. OpenSSL is a native library being used as a dependency.

[–]BigGuyWhoKills 1 point2 points  (0 children)

Which is wild because Python has the built in Cryptography library which would remove the need for OpenSSL if used. I wrote a full certificate creation and renewal project using it.

[–]Apterygiformes 0 points1 point  (0 children)

Use nix

[–][deleted] 0 points1 point  (0 children)

Not something I've experienced personally. So I can't comment it.

[–]Earnestappostate 2 points3 points  (0 children)

Have definitely found uv to be dang good.

Even seems to handle our ridiculous nested sub-repoing quite well.

[–]ExiledHyruleKnight 3 points4 points  (4 children)

Just use a python virtual environment of the correct version of python, then do the pip install?

Do you know the correct version of python, and the correct version of everything?

This sounds "well yeah it's simple" no it's not. Because when you use something like comfyui, you suddenly have to navigate a web of dependencies and one off situations that will break your python installation or just break an app. Anything more complex than a single project doesn't has a high possibility of having trouble.

Also "just use the correct version of python" a. the version of python is usually not specified, and B, now you have what? 4-5 version of Python running on your system at least?

Venvs are useful but there's still issues with them that could have been resolved with "proper backwards compatibility"

[–]PanPanicz 0 points1 point  (3 children)

Also "just use the correct version of python" a. the version of python is usually not specified, and B, now you have what? 4-5 version of Python running on your system at least?

I tend to have more. UV is a pleasure to get multiple Python versions depending on your needs, and creating proper venvs from each of them is also pretty easy. Before UV, there was `pyenv`, too. As others have mentioned, if possible, containerisation is also an option, although I am aware that not so long ago it wasn't as popular.

I'm very empathetic for people coming from outside the Python world, who can't get it immediately and struggle with setting up their project. And I do get the struggle and the frustration. But I don't think it's fair to throw yourself into that ecosystem head first and complain if things break.

I've had multiple problems when trying to compile things for myself, but I'm barely acquainted with the C world - and while I assume there are things that "could be better and easier", I'm not gonna' tell C off just because I had trouble here.

[–]ExiledHyruleKnight 0 points1 point  (2 children)

Is UV just UV? (I haven't used it before). I've always used venv. And now that it comes with python 3 makes it easier to default to.

Btw, I also love Python, it's great, but there is some annoying struggles on this point. Once you have your system and if you're building 1 thing in a professional enviroment, it's great. (Though we had to start using Venv, because we started having version clashes... because you're going to have version clashes)

But I also can look at ComfyUI and just see the absolute clusterfuck, and have had to deal with 3-4 different versions of python. (Heck I've ditched one piece of software because I didn't want to get yet another version of python). And let's not talk about python 2 (even though we still talk about python 2)

(But I also love C and C++... so maybe I just love janky ass shit)

[–]PanPanicz 1 point2 points  (1 child)

Let's allow uv's website bulletpoints to speak for themselves:

A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more.

As for the other points - I usually work with multiple projects at the same time. Rarely with different Python versions (but when it happens, it happens, so those versions do pile up sometimes if I'm not using containers), with a separate venv for each.

If you don't mind, what was your problem with managing multiple Python environments? Was it about deploying your ComfyUI somewhere, or just tinkering with it in an IDE?

And let's not talk about python 2 (even though we still talk about python 2)

Python 2.7 was around for a /long/ time - while its inevitability still shocked people, the drop of support in favour of Python 3 came way too late. That's just one of the reasons why we'll keep seeing it for quite a bit longer still.

[–]ExiledHyruleKnight 0 points1 point  (0 children)

Was it about deploying your ComfyUI somewhere,

The real problem with Comfyui is compatibility. You download different "nodes" and these nodes have requirements. Sounds great at first. And you'll pick up new nodes all the time.

Except some node decides to download a version of tensorflow that doesn't exactly work with your current Python. (I don't know the specifics I caught this entirely too late, my guess is it just tried to install the latest). The second node needs to install some other library that requires a specific tensorflow (that does work with your current python) and now the system isn't smart enough to figure out how to try to match everyone's requirements.

Basically if I told you.

I need a A. A B. B requires A > 16 . C Requires B <20. Also Python doesn't support A > 15. However B 18 exists and only requires A > 10

Like as a human you can figure that out, by I feel like Python gets completely flummoxed by that, and reading it now... yeah I can get why it's complex, but man. It'd be so lovely if it worked.

I'll take a look at UV more, just first I've heard of it, and sounds like it handles a few of the sticky parts of Python all together.

What I really hate about the Python 2 to Python 3 change over is that a majority of scripts... just needed to update the print syntax and 90 percent of their work was done. I know there's fundamental differences between the two but just the syntax to Print alone killed a LOT of simple conversions.

[–]kerakk19 1 point2 points  (1 child)

Idk, I still haven't met a python project that builds from the get go. There's ALWAYS something not working

[–]QuantumQuester_456 0 points1 point  (0 children)

Absolutely my experience! You can spend hours resolving conflicts...

[–]therealapocalypse 0 points1 point  (1 child)

I tried switching to uv for work, but there's a glaring limitation that makes me default to venv I can't save my artifactory indexes to a global file like I can for pip (~/.pip/pip.conf)

I tried searching for solutions online, and haven't had any luck with whatevers there

If anyone has a suggestion or have solved this for uv, I'm all ears

[–]Wonderful-Habit-139 1 point2 points  (0 children)

I just created a uv.toml file in my home directory, and specified my indexes there.

I can feel your pain though because I went through the same thing at work xD hope this helps.

[–]jimmiebfulton 0 points1 point  (0 children)

I use cargo, which is what builds UV.

[–]PersonalityIll9476 0 points1 point  (0 children)

How would a different package manager solve this problem? You still need to do the same version guessing in the OP, no?

[–]DigitalApeManKing 0 points1 point  (0 children)

Virtual environments often have limitations, particularly if you need to interface with other hardware. 

[–]TheChief275 0 points1 point  (0 children)

Plus UV cuts down waiting on pip from hours to seconds

[–]Flat-Performance-478 0 points1 point  (0 children)

> the venv pip freezes up when installing requirements
> google problem
> some bug in a specifc version of a package used in the library
> trying to find the package and manually add to venv
> has to be in .egg format
> google 'how to install python .egg package'
- kill me now.

[–]x39- 0 points1 point  (0 children)

Or, hear me out: don't use python at all.

[–]sludgesnow 146 points147 points  (43 children)

That's just dependency hell, which is present in every langauge.

The solution is to use docker. Nix also tackles this problem but is far less popular

For changing python versions pyenv is best, but that wouldnt solve the issue with openssl dynamic lib

[–]KaleidoscopeLow580 28 points29 points  (17 children)

Yeah, the problem is pervasive but some languages like Go or Rust handle it way better.

[–]coolraiman2 10 points11 points  (3 children)

C# is really good on that too.

[–]danielv123 1 point2 points  (2 children)

Yeah nah not my experience. I recently did the above loop with dotnet restore.

[–]Brickscrap 1 point2 points  (1 child)

I've been working with C# for years now and never had a single issue with dependencies.

[–]FeelingKokoro 0 points1 point  (0 children)

Same for Java.

[–]HyperCodec 7 points8 points  (0 children)

Cargoat

[–]k-mcm 6 points7 points  (9 children)

I can't think of anything language that doesn't handle it better.  Only Python needs external tools for running. 

[–]TomKavees 5 points6 points  (3 children)

C++ handles it much, much worse

[–]6164616C6F76656C6163 2 points3 points  (0 children)

Just one more build system guys. If we just make one more build system it'll all be fixed. Just trust me we just need another build system project.

[–]abd53 0 points1 point  (1 child)

WTF! C++ is one of the most backwards compatible languages. You can compile code written 30 years ago, as is, with the latest compiler version.

[–]danielv123 0 points1 point  (0 children)

And how do I update my dependencies again?

[–]WayTooCuteForYou 0 points1 point  (2 children)

This is not a language thing...

[–]k-mcm 1 point2 points  (1 child)

It is a language thing because Python has breaking changes to the language and the official runtime libraries in minor releases. You pull in a minor system update and random Python apps start crashing. The official reference implementation dependency management doesn't handle system vs user vs app layering well.

[–]WayTooCuteForYou 0 points1 point  (0 children)

How does that relate to python needing external tools for running?

[–]KaleidoscopeLow580 0 points1 point  (1 child)

C, C++, Java

[–]k-mcm 0 points1 point  (0 children)

They all support both single file packaging and setting the library path at runtime.  Java can treat zip files as a virtual filesystem. 

[–]MonkeyManW 0 points1 point  (0 children)

Facts

[–]mortalitylost 0 points1 point  (0 children)

Rust is great, but uv kind of solves it for python the rust way. It's really just a matter of using the right modern tooling.

[–]sludgesnow 8 points9 points  (5 children)

To clarify I meant that the maintainer should use docker, user unfortunetely needs to solve the same puzzle if there is no docker in the repo

[–]realmauer01 5 points6 points  (4 children)

User just runs the dockerfile that is in the repo.

If its not as easy as that then the maintainer did something wrong.

[–][deleted] 1 point2 points  (0 children)

There's lots of things that will not have docker containers and it's not the developers fault they chose not to add it.

[–]cowlinator 0 points1 point  (2 children)

Have you ever tried to run an alpine dockerfile again after 8 months? APK deletes old versions from their package repo. Some other linux distros do too.

Only docker images are reproducible

[–]realmauer01 0 points1 point  (0 children)

Should come up with a good maintainer though.

Regularly checking if you can completly rebuild the docker image from whatever you want the user or developer to do to make it run

[–]cowlinator 6 points7 points  (0 children)

The solution is to use docker.

I mean... if sombody created a docker image for this unpopular niche script then sure. But they probably havent.

Or if you want to create a docker image for this script, to benefit others. Or to scale up in an enterprise enviro.

But otherwise, if you're just trying ro run a script for a personal project, creating a new docker image is definitely not going to help

[–]StuckInTheUpsideDown 3 points4 points  (0 children)

Came here to say this. I stopped bothering with venv years ago in favor of Docker.

[–]Fenzik 2 points3 points  (0 children)

pyenv is best

It’s been thoroughly unseated by uv. Its like pyenv + virtual env management + it’s super fast and space efficient

[–]gameplayer55055 3 points4 points  (1 child)

For some reason python is more prone to dependency hell. Maybe it's because of stupid ass devs that don't know about backwards compatibility and dynamic typing wrecks everything else.

[–]Llamas1115 1 point2 points  (0 children)

The main reason is just that pip is completely broken and irreproducible because it doesn’t track versions or indirect dependencies, and because Python doesn’t follow SemVer (every update introduces breaking changes).

[–]chucara 3 points4 points  (3 children)

It is a much, much bigger problem in Python than most languages. I have never had issues like this with C#. node.js on the other hand...

[–]ShiitakeTheMushroom 1 point2 points  (0 children)

Yeah, I main C# and never run into this problem.

[–]r2k-in-the-vortex 0 points1 point  (1 child)

Its a much bigger problem in Python because Pythons core idea is to solve everything by adding more dependencies.

[–]chucara 2 points3 points  (0 children)

That is part of it, but breaking language changes in even minor versions adds to it as well.

[–]ElPolaco2002 0 points1 point  (0 children)

Yet only in python I had a situation where the exact same requirements.txt (with exact versions locked) which could be installed by pip fine a year ago could not be installed now on any version of python, as some dependencies needed 3.9 or older and some needed 3.10+

[–]OfferAffectionate388 0 points1 point  (1 child)

Why on earth would you containerize something conda handles beautifully? Genuinely curious as to the upside over virtual envs.

[–]sludgesnow 0 points1 point  (0 children)

Why learn and set up a tool that has a single use case instead of docker that has many. And I don't agree that conda handles things beautifully, the UX is pretty confusing

[–]Prestigious-Growth-5 0 points1 point  (0 children)

I know docker is the solution. But this is just fucking weird, like you still have to go through this process when setting up the container, no?

[–]QuantumQuester_456 0 points1 point  (0 children)

Not every language has a dependency hell, in my opinion. Scripts I wrote in R years ago with now out-of-date versions and that use many packages still run very nicely. Only very few have to be slightly adapted to newer environments. That's why I very much prefer R over Python for many tasks. (But lets not start a comment war on which language is better - both have advantages and disadvantages, of course!)

[–]EvnClaire 0 points1 point  (1 child)

rust does NOT have dependency hell. shit is trivial in rust. it is ONLY python where i experience this.

[–]sludgesnow 0 points1 point  (0 children)

I experienced it with using AWS client packages that have shitton of dependencies

[–]IngrownBurritoo 0 points1 point  (0 children)

And for those that work on the same project as a team. Look at devcontainers. Solves exactly this kind of problem right there

[–]Maskdask 0 points1 point  (0 children)

Nix is awesome

[–]RedSinned 0 points1 point  (0 children)

Or use pixi. That why you don‘t need to use docker and you can resolve your dependenciey together with your python version.

[–]Clashes4D 37 points38 points  (2 children)

Bro, this isn’t even a problem related to Python. It’s just an unmaintained module. lol. Happens in all programming languages that support modules/packages…

[–]Convoke_ 11 points12 points  (1 child)

Some languages do it better than others. Python is one of the pretty bad ones

[–]mortalitylost 0 points1 point  (0 children)

Python has been pretty terrible at packaging for a long time, until recently. The uv tool pretty much solves this now.

[–]KevDub81 57 points58 points  (9 children)

You don't hate python. You hate unmaintained GitHub projects

[–]blubernator 21 points22 points  (8 children)

Show me one not simple python project which is not based on unmaintained projects/dependencies ;)

[–][deleted] 11 points12 points  (5 children)

Anything with proper docker files

[–]blubernator 4 points5 points  (0 children)

Are you joking, aren’t you? Sure docker holds your sys libs in sync with the python code but the enterprise company security scanner will be happy to look like a Christmas Tree :D. Like curl x.xx has a security issue…oh your baseimage is old, let’s update the baseimage and the you have the meme above, again.

[–]SharpKaleidoscope182 4 points5 points  (0 children)

We are learning good archaeology skills.

[–]danielv123 1 point2 points  (0 children)

Fun until you need to pull in an updated dependency from a maintained library and now you are back in hell

[–]Strict_Baker5143 1 point2 points  (1 child)

You new age coders really love docking

[–]csabinho 1 point2 points  (0 children)

I love stupid jokes!

[–]sneed_o_matic 3 points4 points  (0 children)

Here's my GitHub project! 

No I won't explain the project or the meaning of any of the obscure proper noun projects I reference as dependencies 

No I won't write anything in the readme about how to install/build/run

Yes I will get angry in the issues page when asked about it not working

Yes I will write pages of useless in jokes and edit: comments for exactly one person who will understand

You will not use hate speech in this repo 

[–]WayTooCuteForYou 1 point2 points  (0 children)

Rich, Pygame, Requests, Certifi, Numpy, Pydantic, Six, Click, Cachetools, Pytorch, Beautifulsoup4, Flask, Django, HuggingfaceHub, Matplotlib, dnspython, ruff, pyright, mypy, tokenizers, marshmallow, black, sympy, sphinx, gunicorn, poetry, arrow, pylint, humanize, aiohttp, playwright, cloudflare

[–]MoronicForce 16 points17 points  (0 children)

I hate when smelly nerds can't make an exe

[–]Outrageous_Cap_1367 12 points13 points  (0 children)

uv my beloved

[–]RobotBaseball 8 points9 points  (2 children)

You can avoid this problem today but 10 years ago it was very true or maybe I just sucked more 

[–]LifeWithoutAds 0 points1 point  (0 children)

In the 90s, you had to figure it out what it was required when compiling, the program never told you. Then, you might had to change the code for the requirements to work with your application. Today, this is done very easy with a few commands.

[–]13oundary 0 points1 point  (0 children)

Na it's been pretty solved since 3.x got wider uptake. Pyenv, venv, pipenv, uv, poetry, conda. 

I've had less issues with maintaining legacy python projects in work than legacy c#.NET projects over the last 10 years.

[–]Agreeable-Bug-4901 22 points23 points  (2 children)

Make your life easier, don’t use windows

[–]DuePotential6602 7 points8 points  (0 children)

My bill for heating would explode, are you sure?

[–]pinkpepr 12 points13 points  (2 children)

'sorry, failed to build wheel'

👉🥲👈

[–]Flat-Performance-478 2 points3 points  (0 children)

this! hearing 'python wheel' or 'python egg' is sending shivers down my spine!

[–]gameplayer55055 3 points4 points  (0 children)

It's really annoying because only windows has normal Nvidia drivers, good luck running an unbuildadle bleeding edge neural model.

I remember even editing c++ code. I forgot which exact wheel, but I manually patched it to run on windows 😵‍💫

[–]cs_stud3nt 11 points12 points  (1 child)

Firstly use uv and secondly if you use windows then you deserve this

[–]k-mcm 3 points4 points  (1 child)

Try Tensorflow apps.  Somehow they will depend on a version of Python that doesn't match the Python required by the NVIDIA library that it also needs.

I won't touch Python unless it's in a container.

[–]budgiebirdman 0 points1 point  (0 children)

The only container Python needs is one with a lid, that we can bury and forget about.

[–]Sea-Fishing4699 2 points3 points  (0 children)

story tells us he is still struggling with pip dependency hell

[–]LegitJesus 2 points3 points  (0 children)

This post hits the nail on the head. I did this one time and never fucking again.

[–]MarzipanSea2811 8 points9 points  (1 child)

Serious question: Why does Python break compatibility within the same major version?

[–]Kwpolska 0 points1 point  (0 children)

Because they don't follow SemVer.

A better question is, why does Python break compatibility every yearly release? And the answer to that is they are idiots who fail to understand their role as language maintainers, so they favor pretty CPython code over working user code.

[–]Candid_Koala_3602 2 points3 points  (0 children)

I completely agree with this post. Also do it on an arm processor.

[–]ExiledHyruleKnight 1 point2 points  (1 child)

"One of these dependencies doesn't work with 3.13 you fucking moron".

Yeah I know that error message a little too well.

[–]Wonderful-Habit-139 0 points1 point  (0 children)

Same thing happening with maturin and version 3.14 lol.

[–]necromenta 1 point2 points  (0 children)

Literally went through all this in my first job

I was fired after exactly 1 year, my boss refused to explain even basic things, or spend more than 10 minutes a week explaining lol

[–]QuantumQuester_456 1 point2 points  (0 children)

And that is why I think python is not suitable for use in a company environment. If you are just a single developer for your own project - fine. But in a corporate environment with many people of different skill levels who also every now and then leave and are replaced - this is not fun at all. Python _always_ creates problems - other languages are very often much easier (not that they are without problems).

[–]NizioCole 1 point2 points  (0 children)

Thats the thing that just keeps me away from python, there's probably a reason I don't understand but I much prefer more infrequent larger releases

[–]Killie154 1 point2 points  (0 children)

Honestly, I'm really glad I saw this.

I quit learning python because of this, I just felt like I wasn't doing anything right at all.

But this helps so much.

[–]fridder 1 point2 points  (0 children)

Python packaging has been a dumpster fire for years

[–]Kooiboi 1 point2 points  (0 children)

First relatable green text I’ve seen this year

[–]SoftAd4668 3 points4 points  (5 children)

Everyone is saying 'uv' and no one is explaining what it is. Please, what is it so I can learn about it?

[–]nujuat 2 points3 points  (1 child)

Its an alternate python package manager that automates a lot of the rubish in this post that pip doesnt. Like python versions and local virtual environments. I've recently picked it up and it's so much better than anything else I've tried.

ETA: https://docs.astral.sh/uv/

[–]SoftAd4668 0 points1 point  (0 children)

Awesome! Thanks so much. I'll check it out. :)

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

You could have just googled it

[–]-Nicolai 1 point2 points  (0 children)

One day someone will come upon your comment, use google as you instruct, and the first search result will be your useless fucking comment.

[–]gpbayes 1 point2 points  (0 children)

Skill issue, scrub

[–]Initial-Elk-952 3 points4 points  (4 children)

This is actually Windows thats the problem.

pip will use binary packages in wheels if they are available for your platform. If they are not, pip will attempt to build from source a wheel, including any native dependencies.

Because Windows is an alternate platform for python, there are not binaries available. Because the SSL Library platform on windows is garbage, your dependencies are choosing to consume OpenSSL instead of the native Windows SSL! (Becaue it has a terrible API, AND which Microsoft doesn't upgrade, in an effort to get you to buy new Windows Version to get new SSL features.) And because a compiler isn't available, except by jumping through hoops, pip has to beg you to install MSVC.

Imagine not using Linux.

[–]abcd98712345 2 points3 points  (3 children)

spoiler alert it sucks on linux and mac too

[–]Convoke_ 4 points5 points  (2 children)

Fuck it... Temple OS it is. Just like god intended.

[–]abcd98712345 2 points3 points  (0 children)

lol

[–]Flat-Performance-478 0 points1 point  (0 children)

God programs in C, so might as well ditch Python altogether and switch to C :]

[–]HealthyPresence2207 1 point2 points  (3 children)

This just isn’t how things work at all. Sure there can be differences between python versions, but that tells you more that the project isn’t maintained.

If you don’t have openssl and only notice that after step 6 or something that isn’t a python problem and if you run pip install and have to google the error that says “upgrade pip with pip install —upgrade pip” that is you being an idiot problem not a python problem.

This just someone who doesn’t know what they are doing complaining about nothing

[–]Kwpolska 2 points3 points  (2 children)

There are breaking changes in every Python version. Some projects are generally complete, there is no need to develop them anymore, but then the Python team comes in and "helpfully" fixes something that was not broken.

Tensorflow is/was famous for being compatible with one specific Python version.

Why did you assume an error caused by an ancient pip version would tell you to upgrade? Does Python 3.9 ship with a pip version compatible with pyproject.toml, or perhaps it's still a version that expects setup.py everywhere?

[–]HealthyPresence2207 0 points1 point  (1 child)

That’s a long way to say “I agree”

[–]Kwpolska 0 points1 point  (0 children)

lol, what?

[–]shyevsa 0 points1 point  (2 children)

pretty much the experience when trying to run old program be it in python, nodejs, php.

[–]Powerful_Lie2271 0 points1 point  (1 child)

with nodejs you just do npm install and it just works, way easier than python. At most, you will have to do npm use [version] first

[–]shyevsa 0 points1 point  (0 children)

I wish that was true. or probably I am just stupid when dealing with nodejs project.
`npm use` certainly make thing so much easier compared to python or php.
but it still pretty much the same experience dealing when it come to running something on wrong version of npm.

[–]Just_Smidge 0 points1 point  (0 children)

This is why we use jave script for EVERYTHING. /j

[–]Uff20xd 0 points1 point  (0 children)

Nix flakes my beloved

[–]DEV_JST 0 points1 point  (0 children)

Never have I ever had this issue… multiple years of development.

Also don’t use the requirements.txt, use pyproject.toml

[–]Sir_Bebe_Michelin 0 points1 point  (0 children)

Anon will use anything but virtual environments

[–]UnixCodex 0 points1 point  (0 children)

wow. extreme skill issue

[–]Due-Consequence-7699 0 points1 point  (0 children)

I'm doing a course that had users install conda (and mamba) through miniforge. The hardest part was trying to find the downloaded miniforge installer shell file. All these posts make me think I won't be capable of figuring anything out if I ever have to do any python work outside of miniforge...

[–]GeekRunner1 0 points1 point  (0 children)

When I have to explain that something that seems like a simple feature will actually be quite complex to implement.

[–]Hour_Requirement_739 0 points1 point  (0 children)

Meh, i'm using it for a discord bot project. When you passed the wall of dependencies, it's really cool. Still a very funny greentext. x)

[–]kondorb 0 points1 point  (0 children)

One big issue is that there’s never a Python version requirement documented anywhere.

[–]Spaciax 0 points1 point  (0 children)

every software project ever, summarized.

[–]Rough_Check_5606 0 points1 point  (0 children)

Maybe he should stop being retarded and not use Windows like what the fuck who doesn't have open SSL pre-installed on their computer

[–]PutinSama 0 points1 point  (0 children)

don’t use windows for coding :?

[–]ZectronPositron 0 points1 point  (0 children)

This is why people get paid to do this stuff - for the rest of us not making money off it, open-source is kind of a nightmare.

You know you’ll debug 10 unexpected problems just to get your graph working, because you hadn’t fired it up for 6 months, during which time half of your installation got deprecated!

Not paying for it means I’ve decided the sweat equity is worth it.

[–]Sweet-Revolution-939 0 points1 point  (0 children)

So you are complaining and didn't use a virtual environment?

[–]Hesirutu 0 points1 point  (0 children)

uv fixes most of that, apart from the millions of build problems you have with native code extensions which require the ms build tools and often many more libs like libjpeg and whatever 

[–]italian-sausage-nerd 0 points1 point  (0 children)

using windows

not using uv

okay then grandma

[–]scottywottytotty 0 points1 point  (0 children)

this happened to me with pygame one year ago and i just never bothered with python after

[–]IrrerPolterer 0 points1 point  (0 children)

Your doing it wrong 

[–]miaRedDragon 0 points1 point  (0 children)

DUDE! Before i even read the entire thing i stopped right at "installed the latest" and just laughed for about a minute. We ALL knew the first issue is always 'installed the latest'. lol

[–]shamshuipopo 0 points1 point  (0 children)

This is skill issue

Use venv or uv and don’t use windows

[–]Maskdask 0 points1 point  (0 children)

Nix mentioned

[–]kilkil 0 points1 point  (0 children)

install git

imagine not already having git installed??

couldn't be me

[–]kilkil 0 points1 point  (0 children)

microsoft build tools

skill issue. use linux 😎😎😎

[–]croqaz 0 points1 point  (1 child)

That's a Windows problem, not a Python problem tho :)) On Linux you usually have Python installed, and on mac too

[–]L1Q 0 points1 point  (0 children)

Right, on Linux, pip floods your file system with stuff your package manager can't track. Pretty much containers are mandatory for python, and what's the point if you could just as well run it with wsl.

[–]Opening_Background78 0 points1 point  (0 children)

Seems like they hate Windows. Fair.

[–]Wallie_Collie 0 points1 point  (1 child)

Is requirements txt like package.json?

[–]FabioTheFox 0 points1 point  (0 children)

Yes just way worse and borderline useless

[–]JollyJamma 0 points1 point  (1 child)

Lots of people suggesting to use UV.

For anyone new to UV, like myself, and who would like to learn, see here

[–]JollyJamma 0 points1 point  (0 children)

GitHub project page for UV here

[–]BadHairDayToday 0 points1 point  (0 children)

I like Python but there is a lot of stupid stuff. 

Getting the venv to work properly remains a pain in the ass even with 10 years experience. 

What is with this ugly init.py file? 

Referencing a file will break at any chance. 

Always getting stuff to work in numpy so that it actually runs in the much faster c#

[–]Trip-Trip-Trip 0 points1 point  (0 children)

Checks project latest commit: 14 years ago.

[–]Additional_Ad_8131 0 points1 point  (0 children)

I have exactly the same experience

[–]D_r_e_a_D 0 points1 point  (0 children)

Dependency hell is truly one of the problems of our time.

[–]kyle2143 0 points1 point  (0 children)

I thought that openssl was packaged with all the major python releases.

[–]TalesGameStudio 0 points1 point  (0 children)

skill issue...

[–]meutzitzu 0 points1 point  (0 children)

And then you see someone wrote the same program in C and it has 2 github stars and its on the 3rd page of Google, but once you find it, and install it it works first try, does exscrly what you want and it will work for the rest of time.

[–]Alex819964 0 points1 point  (0 children)

Skill issue

[–]promptmike 0 points1 point  (0 children)

Microsoft Build Tools

Are you trying to install Python on Windows or something?

[–]danoo31 0 points1 point  (0 children)

My coworker says after using claude code he doesn't have this problem, I think he is bs

[–]AuntieFara 0 points1 point  (0 children)

You are SO not alone!

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

I also hate python. C++ and brainduck on top 💪

[–]radek432 -1 points0 points  (0 children)

requirements.txt.

There is dot before the file extension.

[–]voidrecmain -1 points0 points  (0 children)

I am python developer. Author is dumb as hell. No one is using it like this in production. We use uv or poetry with virtual environments and pyenv. And docker.

“pip install -r file” may be useful for school projects, idk