Live data from Hacker News

Show HN: Wetlands – a lightweight Python library for managing Conda environments

arthursw.github.io

31–40 of 45 posts

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#31
post #21

Earlier quoted context omitted.

Does PDM manage C/Fortran library dependencies? IIRC conda was the only solution for managing both native and python dependencies but I haven't really looked elsewhere. With wheels and the manylinux specifications there's less of a usecase for that, but still could be useful

Not sure about Fortran - but C for sure, yes.

Where does it fetch the C packages from? I always thought PDM was a _Python_ package manager, so the only source is PyPI or another index.

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#32
post #4

Why do people use Conda instead of uv?

The conda ecosystem was a early adopter of standardized binary packages. Now it's mostly behind us, but there used to be a time where pypi didn't have wheels (a 2012 thing), or manylinux wheels (a 2016 thing) for most libraries. pip install was a world of pain if you didn't have the "correct source packages" in your system. And now several of those projects built back then, they're no longer projects but deployed sys…

there was still yet a time when "open source maintainer has to build binaries for x86, ARM, OSX, Windows in order to not get complaints but owns no windows licenses, ARM machines, OSX servers", and github now gives you all of that for free / automatic / declaratively with actions + cibuildwheel. so the value add from "conda" is way down from where it started.

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#33
post #7

Earlier quoted context omitted.

The conda ecosystem was a early adopter of standardized binary packages. Now it's mostly behind us, but there used to be a time where pypi didn't have wheels (a 2012 thing), or manylinux wheels (a 2016 thing) for most libraries. pip install was a world of pain if you didn't have the "correct source packages" in your system. And now several of those projects built back then, they're no longer projects but deployed sys…

Conda is still the recommended way to work with Intel's Python distribution, so there's a reason for it to live on my work computer. The fastest graph library I know, graph-tool, needs to be installed with Conda too.

that appears to be because the maintainers have chosen not to release any files

https://pypi.org/project/graph-tool/

that's not a limitation of pip, that's a limitation of the maintainers of graph-tool

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#34
post #16

Earlier quoted context omitted.

Conda manages binaries and their native dependencies together, including shared libraries[0]. This offers significant advantages over uv and pip when distributing packages with C extensions, such as dependency resolution that accounts for shared library requirements, and better package isolation. [0]: https://docs.conda.io/projects/conda-build/en/latest/resourc...

Use PDM with the UV backend - this accomplishes this in a much more lightweight and performant way.

The PyPI ecosystem can not, for the foreseeable future, replicate the scope of the conda ecosystem. From microarch builds to library deduplication, conda is a more general purpose solution. That doesn't mean that one "wins out" (and, for reference I predominantly use Python's PyPI), but they're not the same tools.

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#35
post #17
post #9

Earlier quoted context omitted.

I used to use conda, but have switched entirely to uv now

As someone new to Python: what was ever the appeal of conda that uv doesn't satisfy?

Distributing non Python packages via the same channel that Python packages may depend on. E.g, h5py depending on libhdf5.

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#36

Earlier quoted context omitted.

The issue is you think pyenv has solved everything, someone else thinks poetry solves everything, I think uv solves everything, and someone else is apt installing things. And then there is installing torch and cuda... I think having a very widely accepted and supported default would let the community rally around it and improve the experience and documentation (though I am not a fan of the centralized hosting that np…

uv + poetry are a higher level in the stack than something like pyenv. pip, uv, poetry are all analagous. they ensure the correct packages are installed. we have some internal apps that devs decided to start with poetry and it has some nice ergonomics ... but on the other hand I find the simplicity of a requirements file to be so ... simple. People get caught up on the file, too, but really its just a convention. you…

You're right not all of those need to be conflated but they aren't entirely orthogonal either, uv can install/manage python installations for you and poetry can manage environments as well if you want. On top of that, you have tools like mise that are more cross cutting.

I agree that there is a really nice simplicity to requirements.txt but I've myself enjoying uv enough to just fully embrace it (and not farm out to uv pip) and as a result I now find myself in pyproject.toml land.

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#37
post #3

> If the user doesn't have pixi or micromamba installed, Wetlands will download and set it up automatically. Please don't. Never have a tool that automatically reaches out onto the internet to get a binary and then run it. Just let the user know that they need to install either pixi or micromamba. It's inherently unsafe and you don't know what will be put into those binaries in the future. Maybe it's because I don't…

[deleted]

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#38
post #21

Earlier quoted context omitted.

Not sure about Fortran - but C for sure, yes.

Where does it fetch the C packages from? I always thought PDM was a _Python_ package manager, so the only source is PyPI or another index.

PDM has plugins, such as being able to invoke conda commands: https://github.com/pdm-project/awesome-pdm

Otherwise I don't know what they're talking about, it is indeed a Python package manager.

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#39
post #33
post #7

Earlier quoted context omitted.

Conda is still the recommended way to work with Intel's Python distribution, so there's a reason for it to live on my work computer. The fastest graph library I know, graph-tool, needs to be installed with Conda too.

that appears to be because the maintainers have chosen not to release any files https://pypi.org/project/graph-tool/ that's not a limitation of pip, that's a limitation of the maintainers of graph-tool

I agree, and yet here we are. If it wasn't built with automake I would even consider getting wheels built on the projects behalf, but I can't make heads or tails of M4.

EDIT: But let's not pretend getting cibuildwheel going for every supported variant of PythonMajVer/OS/(32/64) bit is an easy lift for small open source projects. Conda is still more ergonomic than this, although it's slowly dying because big projects have the manpower to stand up and maintain the CI pipeline for PyPI, so Conda is less and less necessary.

Re: Show HN: Wetlands – a lightweight Python library for managing Conda environments

#40
post #8

Why not just call it swamp? It would better describe the python ecosystem mess ;) Jokes aside, this feels very meta: package manager for a package manager for a package manager. Reminds me of the old RFC1925: "you can always add another layer of abstraction". That RFC also says "perfection has been reached not when there is nothing left to add, but when there is nothing left to take away". And as a hpc admin, I'm not…

it was also my first thought on abstractions of abstractions, thanks for sharing :) could you elaborate a bit more on why HPC world is special when it comes to configuring the environment? I always feel it is a typical problem in software development, to separate operating system env from the application env. do you use spack / easybuild on your personal computer, for example if you need to install a package that is…

I do for macOS and Linux :). Windows support is also coming along.

There isn’t anything particularly special about the HPC world other than the need for many different configurations of the same software for many different CPU and GPU architectures. You might want to have several versions of the same application installed at once, with different options or optimizations enabled. Spack enables that. Environments are one way to keep the different software stacks separate (though, like nix, spack uses a store model to keep installs in separate directories, as well).

Post reply on HN