Conda & Conda-lock Cheatsheet
Quick Reference Guide for Conda Environment Management
1 Conda Basics
1.1 Manage Conda Environment
| Task | Command |
|---|---|
| Create a new conda environment | conda create -n <env_name> |
| Create with specific Python version | conda create --name <env_name> python=3.11 |
| Create with packages | conda create --name <env_name> numpy pandas |
| List all conda environments | conda env list or conda info --envs |
| Activate a conda environment | conda activate <env_name> |
| Deactivate a conda environment | conda deactivate |
| Remove a conda environment | conda env remove -n <env_name> |
| Duplicate a conda environment | conda create --name <new_env> --clone <old_env> |
1.2 Manage Packages in Conda Environment
| Task | Command |
|---|---|
| List all packages in environment | conda list |
| Remove a package from current environment | conda remove <package_name> |
| Update a package in current environment | conda update <package_name> |
| Remove a package in other environment | conda remove -n <env_name> <package_name> |
| Update a package in other environment | conda update -n <env_name> <package_name> |
| Update all packages in current environment | conda update --all |
1.3 Environment Sharing
| Task | Command |
|---|---|
| Export environment (with history) | conda env export --from-history > environment.yml |
| Export environment (full) | conda env export > environment.yml |
Create environment from environment.yml |
conda env create -n <env_name> or conda env create --file environment.yml |
| Update existing environment from file | conda env update --file environment.yml --prune |
2 Command Line Notes
--nameand-nare equivalent--fileand-fare equivalent--platformand-pare equivalent, this is used to specify the platform (e.g.,linux-64,osx-arm64,win-64)- More command line review cheatsheet is available here
3 Conda-lock
3.1 📜 Basic Commands
| Command | Output | Description |
|---|---|---|
conda-lock lock --file environment.yml |
conda-lock.yml |
General lock file for all platforms |
conda-lock lock --file environment.yml -p linux-64 |
conda-lock.yml |
General lock file for specific platform (Linux) |
conda-lock -k explicit --file environment.yml -p linux-64 |
conda-linux-64.lock |
Explicit lock file for one platform (Linux) |
conda-lock render -p linux-64 |
conda-linux-64.lock |
Explicit lock file from existing conda-lock.yml |
3.2 🙀 Comparing conda-lock.yml vs conda-linux-64.lock
| Feature | conda-lock.yml |
conda-linux-64.lock |
|---|---|---|
| Format | Unified YAML (multi-platform) | Explicit (single-platform) |
| Content | Structured metadata + dependencies for all platforms | Simple list of package URLs |
| File Size | Larger (contains all platforms) | Smaller (one platform only) |
| Installation | conda-lock install --name <env_name> conda-lock.yml |
conda create --name <env_name> --file conda-linux-64.lock |
| Use case | Development across multiple platforms | Production deployment, Docker, single platform |
| Speed | Slightly slower (conda-lock processes it) | Fastest |
3.3 Creating Environments from Lock Files
From conda-lock.yml:
conda-lock install --name <env_name> conda-lock.yml
From explicit lock file (e.g., conda-linux-64.lock):
conda create --name <env_name> --file conda-linux-64.lock