Conda: A package management disaster?
Python’s packaging and dependency ecosystem comes under heavy scrutiny, with Conda singled out as both a lifeline for scientific and Windows users and a frequent source of slow, fragile, hard‑to‑reproduce environments—especially when mixed with pip. Commenters contrast Conda’s strength in managing compiled and non‑Python dependencies with its performance and complexity issues, and increasingly point to newer tools like uv, pixi, and mamba, or to Nix and Docker, as more reliable ways to achieve reproducible setups. Underneath the tool choices lies a broader concern that Python never adopted a single, coherent, language‑blessed package and environment model, leaving users to navigate a fragmented landscape of overlapping solutions.
Article & Site Presentation
- Many readers found the blog page nearly unreadable due to CSS (e.g., forced word-breaking), on both mobile and desktop.
- Several note the article is largely a curated email thread from the Python mailing list.
- Some claim parts of the article are inaccurate or confused (e.g., multiple NumPy versions in one process, Jupyter/kernel behavior, “current directory” module shadowing being unrelated to Conda).
Conda: Pain Points
- Frequent complaints about extremely slow and sometimes “stuck” dependency resolution, especially with conda‑forge and larger environments.
- Mixing
condaandpipin the same environment is widely viewed as a major source of breakage. - Some describe Conda environments as fragile when shared or reproduced across machines; others say it works fine if you treat envs as disposable and recreate from YAML.
- Newer libmamba-based solving is reported as faster, but several still consider performance bad.
- Some avoid Conda entirely due to prior bad experiences or due to new licensing limits for large companies.
Conda: Strengths & Use Cases
- Strong support for Windows and compiled scientific stacks was the original killer feature (SciPy/NumPy, CUDA, GDAL, etc.).
- Handles non-Python dependencies and multi-language stacks (C/C++/Fortran, R, Java, Node, command-line tools), which
pip/PyPI generally do not. - Popular in bioinformatics and scientific computing because it can install almost all domain tools from one ecosystem.
- Seen as valuable for corporate environments needing central control, mirroring, access policies, and reproducibility.
Alternatives & New Tools
- Many users now prefer
uvfor Python-only workflows: very fast, PEP-compliant, and a potential replacement for pip/poetry/pipx. pixiis highlighted as “Conda done right”: project-local environments, fast solving, conda-style binary ecosystem plus PyPI via uv.mambais recommended as a drop-in, faster Conda CLI.- Nix (and tools built on it) is praised for cross-language, fully reproducible environments, sometimes replacing Conda altogether.
Broader Python Packaging Debate
- Many see Python packaging as unusually fragmented (pip, venv, conda, poetry, etc.) and historically under-designed compared to ecosystems with a single “blessed” tool.
- Others argue
venv + pip(and now wheels) are adequate for many projects, especially outside Windows and heavy scientific/ML workloads.