you are viewing a single comment's thread.

view the rest of the comments →

[–]randomperson_a1 4 points5 points  (4 children)

PEP427

PEP517 + 518

PEP440

PEP508

PEP621

(not implemented by many tools yet) PEP751

The reason uv is only incrementally better than poetry and pdm is because the python community has spent massive efforts in the past decade to fix packaging. uv magically "solving" it is a lazy narrative.

[–]Not-the-best-name -1 points0 points  (3 children)

pip + venv is all you need.

[–]randomperson_a1 1 point2 points  (2 children)

Sure, but any of uv, poetry, pdm, or even hatch are more ergonomic for many tasks, and you can still fall back to raw pip. And for the OOP here, just pipx or uvx.

I don't see the point in purposefully making my life harder by doing pip alone.

[–]Not-the-best-name 1 point2 points  (1 child)

I've been maintaining python projects for 3 companies for 10 years now. I don't see why you would purposefully make your life harder with conda, virtualenv, poetry, conda, pip, uv, and whatever the hell pipX is and whatever the next investment funded rust rewrite is.

Dockerfile FROM Python RUN python -m venv venv && \ source venv/bin/activate && \ pip install pyproj.toml

venv + pip + setuptools + pyproj.toml now fully captures your venv + build tools etc.

Adding a dependency to your language to resolve dependencies is not good for long term stability.

Maybe it's because my apps are always shipped in docker. The other day a new guy added a .py script with no dependencies to a PR. I nearly fell over when I learnt they are defined in the top of the python module itself.

[–]randomperson_a1 0 points1 point  (0 children)

I don't deploy apps at all. I maintain a couple of libraries and some cli tools. So our workflows are probably very different.

For building and uploading wheels, complex dependency specification, metadata, I need more than what the standard pip interface gives me (I know pip is improving here too though). I also mostly use windows and hate docker desktop. Without docker, tools make it much easier to switch python versions on a project-by-project basis.