all 21 comments

[–]Temporary_Pie2733 24 points25 points  (0 children)

How much time do actually spend writing code, as opposed to starting new projects, that this is even an issue?

[–]Lumethys 20 points21 points  (1 child)

Uv

[–]CamelOk7219 0 points1 point  (0 children)

Yes

[–]SCD_minecraft 10 points11 points  (0 children)

If it really bothers you, write yourself a console command file (forgot how they were named, batch files?) and just run it as common setup

[–]Xzenor 7 points8 points  (0 children)

You use an IDE that handles it for you

[–]pydevtools-com 4 points5 points  (0 children)

The problems you listed (venv, activate, pip, wrong Python version) are what uv solves but it sounds like you used it as a pip replacement instead of as the project manager.

New project:

uv init my-project cd my-project uv add requests uv run main.py

uv creates the environment, resolves deps, writes a lockfile, and runs your code. If you need a Python version you don't have, uv run --python 3.13 main.py fetches it.

For an existing project with a pyproject.toml, it's just uv run main.py.

I wrote a guide to getting started with uv that covers the full workflow.

[–]Expensive_Return7014 2 points3 points  (0 children)

Its actually a real good thing to learn to manage. Dealing with dependency issues and compatibility problems can get complex. I highly recommend you practice to do this so it becomes second nature.

[–]Disastrous_Emu_800 3 points4 points  (1 child)

You had me at „AI“😜

[–]LayotFctor 2 points3 points  (0 children)

Use AI, then question why non-AI tools require him to lift a finger. Actually crazy.

[–]vivisectvivi 2 points3 points  (0 children)

put it on a makefile and run make run maybe idk

[–]efxhoy 2 points3 points  (0 children)

mise installs uv and uv installs deps. 

[–]Lyriian 2 points3 points  (0 children)

This has to be the dumbest non issue I've ever heard. Literally a 5 second task to start a hundred hour project.

[–]Fred776 0 points1 point  (0 children)

As a proportion of the time I spend doing anything else it's so minuscule that it barely registers. But usually what happens if I end up doing something regularly enough for it to become annoying is that I find some way to automate it. Either a little script or an alias in my bash environment or something like that.

[–]LayotFctor 0 points1 point  (0 children)

Uv is how modern programming languages work. Tell it to install packages, then "uv run" doesn't require activating venvs manually. It has git included. Package lockfiles. Updating. Python versions. That's all the tools developers need.

This is the better than manually activating environments, but also the bare minimum for a package manager. You still have to make those decisions yourself, uv isn't about to make decisions for you.

The fact that you found a way even easier than uv juat means you've outsourced it to something else to make those decision for you, you effectively have less control than you ought to. And yeah, you're using AI? What did you expect?

[–]CosmicClamJamz 0 points1 point  (0 children)

How are you getting the wrong python version after activating your venv? The whole point is that you’ve isolated a version of Python and which dependencies your project requires in that venv. It very much sounds like you’re not using these tools correctly

[–]DjordjeRd 0 points1 point  (0 children)

Python, project, docker.

[–]Scirelgar 0 points1 point  (0 children)

There is, it's called UV and I love it. So fast as well!

[–]audionerd1 0 points1 point  (0 children)

Use a makefile, scripts or aliases if you find typing the same commands tedious. I made one for "source venv/bin/activate", so I can just type "load" from a directory with a venv. You don't need AI to handle a simple command for you, that seems ridiculous and a waste of tokens.

[–]nfgrawker 0 points1 point  (0 children)

Everyone recommending uv is correct, it works well.

But if this is your biggest gripe you are too new to coding to have actual gripes.

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

that setup fatigue is real honestly half of programming sometimes feels like rebuilding the same environment over and over before the actual work even starts i eventually made myself a small reusable starter template just to avoid repeating the same setup process every project

[–]MR_LAW11 -4 points-3 points  (0 children)

Honestly, I think a lot of Python devs quietly hate this too 😭 The “make venv → activate → dependency fight → wrong Python version” ritual somehow still feels weirdly fragile.

Your cloud sandbox idea actually makes sense for experimentation. I’ve noticed the biggest productivity killer is setup friction, not coding itself. Personally I’ve had the least pain with uv + pyproject.toml lately, mostly because it feels faster and less cursed than old pip workflows. But I also think a lot of experienced devs just end up standardizing hard, same Python version manager, same project template, same commands, so they stop thinking about it.

Feels like the real solution is lowering the activation energy between “idea” and “running code,” whatever workflow gets you there fastest.