News for hackers. Stuff that matters.
Re:Poetry – Python dependency management and packaging by thiht on Saturday August 08, 2020 @04:50AM (#24090139)
Virtual envs never made sense to me. I never understood what made Python so special that it needed these.

I never got where the virtual env is, what it does and why I need it.

Why can't I just `pip3 install xxx` and be done with it?

Python dependency management is a nightmare, and it seems like it always will be due to the insane number of so called "easy" solutions.

Re:Poetry – Python dependency management and packaging by viraptor on Saturday August 08, 2020 @05:42AM (#24090342)
Python is not special in this case. Virtualenv is pretty much equivalent to:

- bundle --path env_directory

- gopath

- any other language's vendoring solution

In Ruby for example you can do "gem install foo" or add foo to Gemfile and use bundler. Those work similar to "pip install foo" or adding foo to pyproject and using poetry.

It was worse and complicated, but for years now it seems like complaining about venv is closer to a meme, since people go away and do pretty much the same thing in other languages. (Or don't have that option in something like C)

Re:Poetry – Python dependency management and packaging by thiht on Saturday August 08, 2020 @07:24AM (#24090751)
I don't know about Ruby, but it's nothing like Gopath or node_modules, nor Yarn PnP for what it's worth. Virtualenv still need to be created per project and must be "activated".

The fact that they're a somewhat hidden stateful context is still complicated and confusing.

The fact is when I retrieve a Python project, I still have no idea what command I should run to install the dependencies and setup everything. With Go modules it's just `go get`, and with JS projects it's just `npm install` or `yarn install`

Re:Poetry – Python dependency management and packaging by viraptor on Saturday August 08, 2020 @05:22PM (#24095337)
The concept is the same. I'm not saying the implementation is identical. And I meant gopath before modules - where you have to explicitly define your environment.