a) poetry came out 6 years ago, though UV is the new kid on the block, it’s easier to complain about that if you want to.
b) so, you are fighting with silly tools, but don’t want newer, hopefully better tools? If you aren’t fighting with silly tools, then more options is bad? I guess it’s a bit confusing for beginners?
c) how are you fighting with the tools? This is a genuine question, I don’t remember the last time that the tooling caused a problem and I’ve been working professionally with python for the last 5 years, on both small and larger projects, first I used conda, and in the last few years poetry. In poetry, it’s two commands to create a new environment, and install everything. The only time I had a problem was with an internal library that had misconfigured dependencies.
d) here’s the rundown on the dependency tools:
Virtualenv is one of the oldest, from the python 2 times
venv is just a subset of Virtualenv that was integrated into the standard library to have venvs available without external tools
conda is not python specific, it also does R, Ruby, some DB stuff, etc… It tries for maximum compatibility with various systems. This is apparently very useful in bioinformatics which use very disparate tools.
Pipenv is an attempt to implement ruby-like dependencies. I don’t know much about it, it’s not used much.
flit is lightweight, for publishing packages only
-poetry is what I am currently using. Simple toml based dependencies. Installs the packages wherever your want. Since it uses toml, it’s compatible with other tools like dependi to check for updates. It’s got a pretty good set of commands that you don’t need to remember because init and update is what you need 90% of the time. Can also publish packages, and has separate dev/prod dependency groups.
uv is the new one, written in rust (of course) and very fast. Also installs python versions, meaning you no longer need a separate tool/docker images to manage your python versions. No multiple dependency groups yet. Aiming to become the only tool you need to do anything in python. Still <v1.0 and not feature complete.
pdm is more of a project manager, that allows for plug ins, scripts, and also no virtual envs if you want. Does a lot of things similar to poetry.
I mean, every one if these has a reason for existing, and is an improvement of the previous one (pdm started as a personal project, let people have their fun) . It’s also a good few years between them, so it’s not like they’re spamming them.
My bad. I personally can’t stand Python, and am just a python hater. If I used python professionally as a general purpose language, I would probably want all the tools. Though… I never needed a virtual environment in another language.
In the codebases I work in, python is occasionally used as a cross-platform scripting language, which is where its bread and butter should be. Never more than 200 lines. Every time I crack open a codebase, if there is any python, it doesn’t work. That will be the thing I have to fight before I get to work on the real problem. If it has been a year, it’s broken. If it’s a Linux project, you’re better off using Bash if you want it to run a year from now. On Windows, well…
It’s fine. I rarely comment anywhere, and it didn’t really bother me that much. I’m at home with corona (already feeling better), so I had the time to give a thorough answer.
a) poetry came out 6 years ago, though UV is the new kid on the block, it’s easier to complain about that if you want to.
b) so, you are fighting with silly tools, but don’t want newer, hopefully better tools? If you aren’t fighting with silly tools, then more options is bad? I guess it’s a bit confusing for beginners?
c) how are you fighting with the tools? This is a genuine question, I don’t remember the last time that the tooling caused a problem and I’ve been working professionally with python for the last 5 years, on both small and larger projects, first I used conda, and in the last few years poetry. In poetry, it’s two commands to create a new environment, and install everything. The only time I had a problem was with an internal library that had misconfigured dependencies.
d) here’s the rundown on the dependency tools:
init
andupdate
is what you need 90% of the time. Can also publish packages, and has separate dev/prod dependency groups.I mean, every one if these has a reason for existing, and is an improvement of the previous one (pdm started as a personal project, let people have their fun) . It’s also a good few years between them, so it’s not like they’re spamming them.
My bad. I personally can’t stand Python, and am just a python hater. If I used python professionally as a general purpose language, I would probably want all the tools. Though… I never needed a virtual environment in another language.
In the codebases I work in, python is occasionally used as a cross-platform scripting language, which is where its bread and butter should be. Never more than 200 lines. Every time I crack open a codebase, if there is any python, it doesn’t work. That will be the thing I have to fight before I get to work on the real problem. If it has been a year, it’s broken. If it’s a Linux project, you’re better off using Bash if you want it to run a year from now. On Windows, well…
Did… Did someone on the Internet admit to not being 100% correct?!
What is happening right now? Is it the apocalypse? the end times?
Has great Cthulhu risen, neath the dark waves of the abyss to tear mind from-
Ok, a bit dramatic, but when was the last time you saw anyone give an inch in an online argument?
Anywho, thanks for the context, though I think the idea of python as a “scripting language” is a bit overblown.
I felt bad you typed all that out when I’m just a python hater who isn’t able to argue in good faith.
It’s fine. I rarely comment anywhere, and it didn’t really bother me that much. I’m at home with corona (already feeling better), so I had the time to give a thorough answer.