Conda — Environments Beyond Python

The environment manager that handles non-Python dependencies too — CUDA, R, compilers, geospatial libraries — where pip alone breaks down.

Official Site https://conda.org
Category Code
Pricing Free
Rating ★★★★☆ (4/5)

Overview

Conda manages isolated environments containing not just Python packages but binaries: CUDA toolkits, GDAL, R, compilers. When a dependency has a C library underneath — common across scientific computing — conda (via conda-forge) installs what pip cannot.

Why researchers use it

  • Binary dependencies — CUDA, GDAL, BLAS handled without system-admin pain
  • conda-forge — community channel with nearly everything scientific, kept current
  • environment.yml — shareable, re-creatable environment specs for papers

Getting started

  1. Install Miniforge (conda-forge default, no licensing questions) rather than full Anaconda.
  2. conda create -n project python=3.12 numpy, then conda activate project.
  3. Export with conda env export –from-history > environment.yml and commit it beside your code.

The honest review

Strengths. Still the most practical answer for mixed-language, GPU, or geospatial stacks, and mamba’s solver speed (now default) removed the historic slowness complaint.

Limitations. Environments are heavy (gigabytes accumulate fast), –from-history exports are only as reproducible as your discipline, and Anaconda Inc.’s licensing for its default channel confuses institutions — hence Miniforge.

When NOT to use this For pure-Python projects, uv is now faster and cleaner — conda earns its weight only when non-Python binaries enter the stack. And never mix pip and conda installs carelessly in one env; that’s how environments die.