Freedom251 › Python Package Managers
conda-lock

What conda-lock is
conda-lock is a free, MIT-licensed library for generating reproducible lockfiles for conda environments. It resolves dependencies for each target platform, allowing installations from generated lockfiles to avoid running the conda solver. Inputs can come from environment.yml, conda-build meta.yaml, or pyproject.toml dependency specifications. Its default output is a unified lockfile for multiple platforms, which can also be rendered into other lockfile formats. The documented target examples include Linux, Windows, macOS, Apple silicon, and other Linux architectures. The project describes use with conda, mamba, pip, Docker, and pixi; installation options include pip, conda, and mamba, with pipx or condax recommended for isolation. Mixed conda and pip locking is experimental and uses a vendored Poetry dependency solver. Channel authentication supports tokens and basic authentication, with environment-variable substitution for credentials. Private pip repository support is limited to legacy PyPI repositories with basic authentication. The documentation also notes that pip-solved packages in an explicit lockfile can only be installed by conda-lock.
Who it suits
It suits developers and teams managing conda environments across multiple platforms who want generated lockfiles. Users with mixed conda and pip dependencies should account for the experimental support and explicit-lockfile installation limitation.
What it does well
- Supports three environment specification formats.
- Default output can cover multiple platforms.
- Documents usage with conda, mamba, pip, Docker, and pixi.
- MIT licensed and free.
What to know first
- Mixed conda and pip locking is experimental.
- Private pip support is limited to legacy PyPI with basic authentication.
- Pip-solved packages in explicit lockfiles install only through conda-lock.
Limits
Private pip repository support is limited to legacy PyPI repositories using basic authentication. Mixed conda and pip locking is experimental; when pip-solved packages are in an explicit lockfile, only conda-lock can install them.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Free and open source | MIT licensed software · installed with pip, conda, mamba, pipx, or condax | Free |
As conda.github.io lists them, read 4 Oct 2026. The maker's own page has the final word.
Getting started
- Visit https://conda.github.io/conda-lock/.
- Install conda-lock through pip, conda, or mamba; pipx and condax are also documented for isolated installs.
- Prepare dependency specifications in environment.yml, conda-build meta.yaml, or pyproject.toml.
- Generate a unified lockfile for the target platforms your environment needs.
- Use the generated lockfile with a documented tool such as conda, mamba, pip, Docker, or pixi.
Verdict
conda-lock provides platform-aware lockfiles for conda environments and documents several installation and ecosystem options. Check its pip-related limitations if private repositories or mixed environments are part of your setup.
Questions
Does conda-lock cost anything?
No. The listed plan is free and open source, and the project uses the MIT License.
Which operating systems and architectures are supported?
Documented target examples are linux-64, osx-64, win-64, osx-arm64, linux-aarch64, and linux-ppc64le.
Which dependency files can it read?
It supports environment.yml, conda-build meta.yaml, and pyproject.toml dependency specifications.
Can it lock both conda and pip packages?
Mixed conda and pip locking is supported experimentally through a vendored copy of Poetry’s dependency solver.
Does it support private package repositories?
Channel authentication supports tokens and basic authentication. Private pip repository support is limited to legacy PyPI repositories with basic authentication.
How can I install conda-lock?
The project documents installation through pip, conda, and mamba, and recommends pipx or condax for isolated installs.
Facts from conda-lock's own pages
- Authentication
- It supports token-based and basic authentication for channels and documents environment-variable substitution for credentials. · conda.github.io, 4 Oct 2026
- Credential handling
- The unified lockfile omits raw credential-bearing channel URLs when it can match credential portions to environment variables, while rendered explicit lockfiles may contain substituted variables. · conda.github.io, 4 Oct 2026
- Ecosystem integrations
- The documentation describes usage with conda, mamba, pip, Docker, and pixi. · conda.github.io, 4 Oct 2026
- Explicit lockfile limitation
- When pip-solved packages are present in an explicit lockfile, the docs say those packages can only be installed by conda-lock. · conda.github.io, 4 Oct 2026
- How it works
- It solves dependencies for each target platform and lets installations from generated lockfiles avoid invoking the conda solver. · conda.github.io, 4 Oct 2026
- Input formats
- It supports environment.yml, conda-build meta.yaml, and pyproject.toml dependency specifications. · conda.github.io, 4 Oct 2026
- Installation
- The project documents installation through pip, conda, and mamba, and recommends isolated installs with pipx or condax to reduce dependency-conflict risk. · github.com, 4 Oct 2026
- License
- The repository lists the MIT License and states that the software is provided without warranty. · github.com, 4 Oct 2026
- Pip integration
- It has experimental support for locking mixed conda and pip environments using a vendored copy of Poetry’s dependency solver. · conda.github.io, 4 Oct 2026
- Private PyPI limit
- The README says private pip repository support is limited to legacy PyPI repositories with basic authentication. · github.com, 4 Oct 2026
- Purpose
- conda-lock is a lightweight library for generating fully reproducible lockfiles for conda environments. · conda.github.io, 4 Oct 2026
- Support and contributions
- The README directs contributors to its contributing guide for development setup; the documentation links to the GitHub repository. · github.com, 4 Oct 2026
- Supported target platforms
- The README lists linux-64, osx-64, win-64, osx-arm64, linux-aarch64, and linux-ppc64le as target platform examples. · github.com, 4 Oct 2026
- Unified lockfile
- Its default output is a unified multi-platform lockfile that can be rendered into other lockfile formats. · conda.github.io, 4 Oct 2026
Where conda-lock stands on Freedom251
- Python Package Managers#3 of 27