Also pipx for cli tools. It creates isolated environments for every tool you install. And upgrading is one command away pipx reinstall-all --python (your pyenv).
This broke Pytest for us, not sure if it's an us problem, pytest problem, or Python 3.12 problem. Basically, it uses a ton of RAM until it gets killed by the OOM (I'm running in a Docker container w/ 3GB max RAM limit).
I'll post back when I get it working, but that's blocking our upgrade for now. Will probably revisit in a couple months after we get some projects shipped so we don't fall too far behind.
Our tests are written in unittest style, but run with unit test. Unfortunately, a large number of our tests rely on fixtures, as in loading a ton of data into a SQLite database and then running code against that. That's because we have DB queries all throughout our service logic, so it's quite a bit of spaghetti to try to mock the DB logic.
So instead of trying to fix the memory issues in pytest, we're refactoring our app to separate the DB calls from our service logic, which should let us easily mock the repository in our tests.
So short answer: no. Longer answer: I might be able to tell you in a few months if this approach fixes the issue.