5 ms·
I recently started using https://github.com/prefix-dev/pixi https://github.com/prefix-dev/pixi for Python projects. I really love it so far, but this tool looks
by quickslowdown 2y ago
I recently started using https://github.com/prefix-dev/pixi https://github.com/prefix-dev/pixi for Python projects. I really love it so far, but this tool looks a bit more mature, which makes sense considering pixi is relatively new.
- jdsalaro 2y ago> I recently started using https://github.com/prefix-dev/pixi https://github.com/prefix-dev/pixi for Python projects Why is it based on the Conda ecosystem? Do you happen to know? I assume it's for portability, but that sounds heavy.
- abkfenris 2y agoFor as much improvement as there has been with what can be distributed via PyPI, there are still some domains that have gnarlier dependencies than wheels happily handle alone, and you either need to reach for the system package manager (and loose the ability to really control the dependency environment from that mismatch), or take advantage of the Conda ecosystem. My org does a lot of work combining machine learning with oceanographic and climate modeling, which are both domains that have deep dependency chains that don't always mesh well, especially as our researchers mix in R and other languages as the same time, and the Conda ecosystem helps us a ton with that, but there are issues that `conda` and `mamba` don't help us out with. Pixi takes a swing at some of what the Conda ecosystem hasn't been great at (at least without a lot of manual custom ceremony) that Cargo, Poetry, Pipenv, PDM, and other dependency and workflow management tools have demonstrated can be done such as lock files, cross platform dependency management, task running, and defining multiple related environments. What's really cool when you have a mix of projects, Pixi can work almost entirely PyPI native out of a `pyproject.toml`, other than installing Python from Conda-Forge, so you can mix and match environments but stay with the same tool. https://prefix.dev/blog/using_python_projects_with_pixi https://prefix.dev/blog/using_python_projects_with_pixi docs: https://pixi.sh/latest/advanced/pyproject_toml/ https://pixi.sh/latest/advanced/pyproject_toml/
- bmitc 2y agoWhy this over Poetry? asdf handles tools, not really packages. So asdf would install Python and not Python packages.
- jdsalaro 2y agoMy experience with Poetry has been mixed the last couple of times I've tried it, it attempts to do way to many things but often failed to do them properly. Determining dependencies and proper packaging and upload to PyPI are the ones which come to mind. asdf.vm together with pipenv is my go-to for Python environment management.
- eddyg 2y agopip-tools[0] is all most things need IMO. It’s a great balance of simplicity and utility. [0] https://pip-tools.readthedocs.io/en/stable/ https://pip-tools.readthedocs.io/en/stable/ As for Poetry, it is constantly improving and has gotten very popular. It should not be dismissed, especially for larger projects since its dependency management is so much better than pipenv. This is a good primer: https://diegoquintanav.github.io/poetry-primer.html https://diegoquintanav.github.io/poetry-primer.html
- appplication 2y agopyenv + pip tools is all one needs. Supposedly uv is gunning to be a drop in for both. I think there’s a good chance uv pulls it off and becomes defacto for this use case. I think it’s fair to see appeal in poetry, but ultimately the maintainers have created a culture that feels a bit too non-collaborative to outside ideas or use cases beyond what they more narrowly envisage. That said, my perspective may just be tainted by multiple poor experiences interacting with the maintainers.
- jdsalaro 2y ago> pyenv + pip tools then you'd also need rbenv, nvm, etc. and pyenv can implode in marvelous ways.