New features to try#

This page contains recent additions to conda worth your attention, including features still in beta that we’d love your feedback on. For the full list of changes across releases, see the Release notes.

Stage legend
Stable — On by default, recommended for all users.

Beta — Opt in to test, not recommended for production. We want your feedback!


Install PyPI packages with conda install#

Available in conda 26.5   Beta

The new conda-pypi plugin lets you install PyPI packages natively with conda install. Conda resolves across both conda channels and PyPI in a single solve, and PyPI wheel packages behave like any other conda package once installed: they show up in conda list, get captured in conda export, and uninstall cleanly with conda remove.

This replaces the common workaround of running pip install inside a conda environment, which can leave you with packages conda doesn’t know about, environments that are hard to reproduce, and hard-to-debug conflicts that surface much later.

How to opt in

  1. Make sure you’re on conda 26.5 or later. To update:

    conda install --name base 'conda>=26.5'
    
  2. Enable the Rattler solver and add the conda-pypi channel:

    conda config --set solver rattler
    conda config --append channels conda-pypi
    

Basic usage

Before, you had to install conda packages and then pip install packages from PyPI:

conda install pandas scikit-learn
pip install some-pypi-package

But with conda-pypi enabled, you only need one command:

conda install pandas scikit-learn some-pypi-package

What’s next

We want to hear what works, what doesn’t, and what should come next. Open an issue or join the discussion below.

Full documentation · Open a GitHub issue · Join the discussion in Zulip

Faster solves with Rattler solver#

Available in conda 26.5   Beta

Rattler is a Rust-based solver developed within the conda ecosystem by the team at Prefix.dev. It will be replacing Libmamba as the default environment solver in the future.

Environments solve meaningfully faster with Rattler, especially large or complex ones, and your existing environments and workflows keep working.

How to opt in

Update conda and switch your default solver to Rattler:

conda install --name base 'conda>=26.5'
conda config --set solver rattler

To switch back at any time:

conda config --remove-key solver

What’s next

Rattler will most likely become the default solver in a conda 27.x release. Trying it now and reporting issues helps us decide when it’s ready and shapes how the transition will work for the wider community

Full documentation · Open a GitHub issue · Join the discussion in Zulip

Native multi-platform lockfile support#

Available in conda 26.5   Stable

Available to everyone running conda 26.5. No opt-in required.

conda export, conda create, and conda install now support lockfiles as a first-class artifact. A lockfile records the exact packages, versions, builds, and channels in an environment, and conda can use that lockfile to recreate that environment exactly. Lockfiles can also record the resolved packages for several platforms at once. With a multi-platform lockfile, the same file can recreate the environment on Linux, macOS, and Windows.

When creating or installing from a lockfile, conda skips solving entirely and goes straight to downloading and installing the pinned packages. For large environments, or environments rebuilt repeatedly in CI, this is the difference between minutes of solving on every run and a fast, deterministic install.

Conda supports the conda-lock.yaml and pixi.lock formats natively. No separate plugin or third-party tool is required.

Basic usage

Update conda to version 26.5 or later to use this feature:

conda install --name base 'conda>=26.5.'

Export an environment to a lockfile:

conda export --name my-env --file conda-lock.yaml

Recreate the environment on another machine:

conda create --name my-env --file conda-lock.yaml

By default, the lockfile captures only the platform you exported from. To capture multiple platforms in one file, pass --platform once per target:

conda export --name my-env --file conda-lock.yaml \
  --platform linux-64 \
  --platform osx-arm64 \
  --platform win-64

A few things to keep in mind

  • Reproducibility depends on the channel. A lockfile pins exact packages, but those packages must still be available when you recreate. If a package is removed or yanked later, the recreate will fail.

  • pip-installed packages aren’t captured by default. conda export to a lockfile captures conda packages only. If you need PyPI packages reproducibly captured, see Install PyPI packages with conda above. That option enables conda to install (and export) PyPI packages natively.

Full documentation · Open a GitHub issue · Join the discussion in Zulip