Conda & Conda-lock Cheatsheet

Quick Reference Guide for Conda Environment Management

Author

Sky (Kehan) Sheng

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

  • --name and -n are equivalent
  • --file and -f are equivalent
  • --platform and -p are 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