Skip to content

Basic Usage

Consider the following source specification:

environment.yml
channels:
  - conda-forge
dependencies:
  - python=3.12
  - numpy

Generating a Lockfile

Generate a multi-platform lockfile conda-lock.yml

conda-lock -f environment.yml -p osx-64 -p linux-64

Creating an Environment

Create an environment from the lockfile

conda-lock install [-p {prefix}|-n {name}]

Alternatively, render a single-platform lockfile and use conda command directly

conda-lock render -p linux-64
conda create -n my-locked-env --file conda-linux-64.lock

Updating Packages

Update the previous solution, using the latest version of numpy that is compatible with the source specification. This command overrides the lockfile.

conda-lock --update numpy

Adding new Packages

Add a new package to the environment

Updated environment.yml
channels:
  - conda-forge
dependencies:
  - python=3.12
  - numpy
  - pandas  # new

and regenerate the lockfile

conda-lock -f environment.yml -p osx-64 -p linux-64

If there is an existing lockfile, it is used as constraint. That means conda-lock will search for the latest version of pandas that is compatible with the previous solution. This command overrides the lockfile.