409
you are viewing a single comment's thread
view the rest of the comments
[-] Eiri@lemmy.ca 9 points 1 day ago

Python managed to turn me away before I wrote a single line of code.

Running an already functional project took me nearly two hours and three separate tutorials.

[-] yetAnotherUser@discuss.tchncs.de 17 points 23 hours ago

What's so difficult?

import project as p

p.run()
[-] Eiri@lemmy.ca 10 points 22 hours ago

Hmm, I follow the package's readme and only get invalid command errors.

Gotta install the pip dependencies.

Oh but first you need to create a venv or everything will be global. Why isn't that local by default like with npm? Hell if I know!

Ah but before that I need to install the RIGHT version of Python. The one I already have likely won't do. And that takes AGES.

Oh but even then still just tells me the command is invalid. Ah, great, I live CLIs. Now I've gotta figure out PATH variables again and add python there. Also pip maybe?

Now I can follow the readme's instructions! Assuming I remember to manually open the venv first.

But it only gives me errors about missing pieces. Ugh. But I thought I installed the pip dependencies!

Oh, but turns out there's something about a text file full of another different set of dependencies that I need to explicitly mention via CLI or they won't be installed. And the readme didn't mention that, because that's apparently "obvious". No it's not; I'm just a front-end developer trying to run the darn thing.

Okay. Now it runs. Finally. But there's a weird error. There might be something wrong with my .env file. Maybe if I add a print statement to debug... Why isn't it showing up?

Oooh, I need to fully rebuild if I want it to show up, and the hot reload functionality that you can pass a command line argument for doesn't work... Cool cool cool cool.

Yeah package system is a nightmare in python I'm so spoiled if Rust that I find it hard to enjoy another language...

[-] eager_eagle@lemmy.world 3 points 22 hours ago* (last edited 22 hours ago)

yeah, all that setup sucks even after being writing python for years.

Nowadays I've been running every project with uv and it's a much better and faster experience, usually in 3 steps: 1. initialize, 2. add dependencies, 3. run project:


# if the project doesn't already have a pyproject.toml with dependencies, initialize it
# uv will also install the right interpreter if not present:
uv init --python 3.13

# anything you would install with pip, use uv add:
uv add dep1 dep2

# run the project / script
uv run main.py

Then in future runs (as long as you have the pyproject.toml), you can just do uv run main.py (shorthand to uv run python main.py), even when there's no venv created. No more activating virtual envs. No more long interpreter installations. No more accidentally messing with system's packages or the PATH variable. With the uv.lock that's also a lot more reliable to reproduce than requirements.txt and similar.

[-] TrickDacy@lemmy.world 1 points 22 hours ago

This does not reflect my experience with python at all. Except the version thing used to be a thing. Not really any more.

this post was submitted on 28 Nov 2024
409 points (89.1% liked)

Programmer Humor

32586 readers
846 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS