If you are unexperienced, I recommend you stick with uv and set the env var: UV_MANAGED_PYTHON=true
This will make uv not consider system python, only the uv-managed python versions.
No more f-ing up the system python and juggling with multiple apt-installed python versions.
Recently, people report that uv (https://docs.astral.sh/uv/) really makes a difference in Python tooling and puts poetry and of course anaconda unnessecary.
I tried learning Python recently to move away from .NET. Wish I hadn't spent so much time reading about the language before actually trying to do a real world project. That environment and pip stuff is terrible. Where did they get the idea to do that? No other language I've come across has tooling that ridiculous. I switched to Go instead.
If you haven't written off Python completely, I would suggest giving it a second chance using uv [1] for managing environments and Python versions. In my opinion, uv is the best thing to happen to Python in 10 years.
Ah, the joys of
If you are unexperienced, I recommend you stick with uv and set the env var: UV_MANAGED_PYTHON=trueThis will make uv not consider system python, only the uv-managed python versions. No more f-ing up the system python and juggling with multiple apt-installed python versions.
(2018) At the time (307 points, 181 comments) https://news.ycombinator.com/item?id=16958818
Homebrew is the real annoyance here.
Creating and using tons of python scripts under Homebrew, I had to learn by heart:
$ python3 -m venv .venv # Create a virtual environment
$ source .venv/bin/activate # Activate the virtual environment
(.venv) pip install <whatever you need> # Install stuff within the virtual environment
...
(.venv) deactivate
$ [sudo] rm -fR .venv
I think the title deserves a (2018), which I estimated by explainxkcd history https://www.explainxkcd.com/wiki/index.php?title=1987:_Pytho...
Recently, people report that uv (https://docs.astral.sh/uv/) really makes a difference in Python tooling and puts poetry and of course anaconda unnessecary.
[flagged]
I tried learning Python recently to move away from .NET. Wish I hadn't spent so much time reading about the language before actually trying to do a real world project. That environment and pip stuff is terrible. Where did they get the idea to do that? No other language I've come across has tooling that ridiculous. I switched to Go instead.
If you haven't written off Python completely, I would suggest giving it a second chance using uv [1] for managing environments and Python versions. In my opinion, uv is the best thing to happen to Python in 10 years.
[1] https://docs.astral.sh/uv/
Uv and uvx have been such game changers when we tried to distribute our python packages.
ruff is a blessing as well and soon ty will make type checking so much better (or pyrefly which also seems great)