Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsApr 27, 2026·3 min de lecture

Conda — Cross-Platform Package and Environment Manager

Install, update, and manage packages and isolated environments for Python, R, C/C++, and hundreds of other languages from a single tool.

Introduction

Conda is a language-agnostic package and environment manager that installs pre-built binaries from curated channels. It handles Python, R, C libraries, CUDA toolkits, and system-level dependencies in isolated environments, making it the standard tool for data science and scientific computing workflows.

What Conda Does

  • Creates isolated environments with pinned package versions
  • Installs pre-built binary packages for Python, R, C/C++, Fortran, and more
  • Resolves complex dependency graphs including non-Python shared libraries
  • Manages CUDA, MKL, OpenBLAS, and other system-level runtime dependencies
  • Supports reproducible environments via environment.yml and conda-lock files

Architecture Overview

Conda maintains a package index (repodata.json) fetched from configured channels. Its solver analyzes version constraints, build strings, and platform markers to produce a consistent environment plan. Packages are tarballs containing pre-compiled binaries, metadata, and activation scripts. Environments live in isolated directories under envs/, each with its own bin/, lib/, and site-packages/. The activation system modifies PATH and environment variables per shell session.

Self-Hosting & Configuration

  • Install Miniconda for a minimal base or Anaconda for a full data-science distribution
  • Add conda-forge as the default channel for the broadest package selection
  • Create environments with conda create -n name package=version
  • Export environments with conda env export > environment.yml for reproducibility
  • Configure solver behavior, proxy settings, and channel priority in .condarc

Key Features

  • Language-agnostic — manages Python, R, Julia, Node.js, and compiled libraries
  • Pre-built binaries eliminate the need for compilers on end-user machines
  • Channel system with conda-forge providing 30,000+ community-maintained packages
  • Environment isolation prevents dependency conflicts between projects
  • Cross-platform support for Linux, macOS, and Windows with consistent behavior

Comparison with Similar Tools

  • mamba — C++ reimplementation of conda with 10-50x faster solving; same ecosystem
  • pip + venv — Python-only; cannot manage non-Python dependencies like CUDA or MKL
  • uv — ultra-fast pip replacement but limited to PyPI; no conda channel support
  • pixi — Rust-based conda-compatible manager with lockfiles and task runner
  • Spack — builds from source for HPC; more flexible but slower than pre-built packages

FAQ

Q: What is the difference between Miniconda and Anaconda? A: Miniconda installs only conda and Python. Anaconda bundles 250+ popular data-science packages out of the box.

Q: Can I use pip inside a conda environment? A: Yes, but install conda packages first, then use pip for anything not available on conda channels to avoid solver conflicts.

Q: How do I speed up conda's solver? A: Set solver: libmamba in .condarc (default since conda 23.10) or switch to mamba/micromamba for faster resolution.

Q: Is conda free for commercial use? A: Conda itself is open source (BSD). The default Anaconda channel requires a license for organizations with 200+ employees; conda-forge is always free.

Sources

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires