Conda
Conda is a language-agnostic, cross-platform package and environment manager. Where pip installs Python packages from PyPI, conda resolves dependencies across Python, R, C/C++, Fortran, and other languages in a single dependency graph.
Note
Conda is the package manager. Anaconda is a distribution that bundles conda with 1,500+ pre-installed packages. See Understanding the Conda/Anaconda Ecosystem for how conda, Miniconda, Miniforge, and Anaconda relate.
Key Features
- Cross-language dependency resolution. A single environment specification can pin Python, R, CUDA toolkits, and compiled C/Fortran libraries together. The solver tracks version constraints across all of them.
- Python version management. Conda treats the Python interpreter as a package. An environment file can pin
python=3.12.4, and conda installs that exact version alongside everything else. - libmamba solver (default since 23.10). Conda’s dependency resolver uses libmamba, a C++ solver ported from the mamba project. It reduced solve times by 50-80% compared to the legacy Python solver. An experimental rattler-based solver written in Rust is also available.
- Multiple distribution paths. Available through Miniconda (minimal), Anaconda (batteries-included), or Miniforge (defaults to conda-forge, no commercial license restrictions).
- Reproducible environment export.
conda env exportcaptures every package, version, and build string.conda env export --from-historyrecords only explicitly requested packages for cross-platform sharing. - Lockfile support. The conda CLI generates and installs native lockfiles, bringing reproducibility closer to what pixi and uv offer.
When to Use Conda
Conda solves problems that Python-only package managers cannot when a project depends on non-Python compiled libraries (CUDA, MKL, HDF5, GDAL, NetCDF) or spans multiple languages. Data science and scientific computing teams that need a single environment covering Python and R packages alongside system-level C/Fortran libraries are the primary audience.
For pure Python projects, uv provides faster installs, tighter PyPI integration, and a simpler workflow. See Why should I choose conda? and uv vs. Pixi vs. Conda for scientific Python for detailed comparisons.
Notable Features
- Sharded repodata (CEP 16). Conda fetches package metadata more efficiently from channels that support sharding, reducing the data transferred before a solve.
- conda-pypi plugin (public beta). The official direction for installing PyPI packages inside conda environments. Records every PyPI install in
conda-metawhere the solver can track it, replacing ad-hocpip installcommands. - Formalized specifications (CEPs 29-38). Ten Conda Enhancement Proposals standardize package naming, version comparison, MatchSpec syntax, the
.condaformat, repodata, andconda-lock.yml. Conda, mamba, pixi, and rattler share a single specification. - Python 3.14 support. The minimum supported Python version is 3.10.
Pros
- Resolves Python and non-Python dependencies in a single graph
- Manages Python interpreters alongside packages
- conda-forge provides 30,000+ community-maintained packages with automated builds
- Cross-platform: Linux, macOS, Windows, aarch64
- libmamba solver makes resolution competitive with newer tools
- Enterprise-friendly with private channel and mirror support
Cons
- Packages come from conda channels, not PyPI, creating a parallel ecosystem. Mixing conda and pip in one environment risks dependency conflicts because pip-installed packages are invisible to conda’s solver.
- The default Anaconda channel requires a paid license for organizations above 200 employees. Avoidable by using conda-forge via Miniforge, but teams must configure channels deliberately.
- Environments are larger than typical Python virtual environments because they bundle compiled system libraries.
- The global-environment-by-default workflow feels heavier than the project-local model in uv or pixi.
Learn More
Handbook pages
- Take over an existing conda environment (Tutorial)
- How to migrate from conda to pixi (How To)
- How to publish a Python package to conda-forge (How To)
- Why should I choose conda?
- Understanding the Conda/Anaconda Ecosystem
- Is Conda actually free?
- uv vs. Pixi vs. Conda for scientific Python
- conda-forge
- Pixi