Skip to content

libmamba solver ignores add_pip_as_python_dependency=True for conda-forge Python after upgrading miniconda from from 26.1.1 to 26.3.2 #930

@argiacomi

Description

@argiacomi

Checklist

  • I added a descriptive title
  • I searched open reports and couldn't find a duplicate

What happened?

With add_pip_as_python_dependency: True, creating a new environment with python=3.11 from conda-forge using the default libmamba solver does not install pip.

The same command using --solver=classic does install pip, along with setuptools, wheel, and packaging.

This appears specific to the libmamba solver path with conda-forge metadata. In a separate test, libmamba with defaults did include pip, while libmamba with conda-forge did not.

Reproducer

conda config --show add_pip_as_python_dependency solver channels

conda create -n repro-libmamba python=3.11 \
  -c conda-forge --override-channels --dry-run

conda create -n repro-classic python=3.11 \
  -c conda-forge --override-channels --solver=classic --dry-run

Config output

add_pip_as_python_dependency: True
channels:
  - conda-forge
  - defaults
solver: libmamba

Actual behavior with libmamba

Channels:
 - conda-forge
Platform: osx-arm64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /opt/homebrew/Caskroom/miniconda/base/envs/repro-libmamba

  added / updated specs:
    - python=3.11

The following NEW packages will be INSTALLED:

  bzip2              conda-forge/osx-arm64::bzip2-1.0.8-hd037594_9
  ca-certificates    conda-forge/noarch::ca-certificates-2026.4.22-hbd8a1cb_0
  libexpat           conda-forge/osx-arm64::libexpat-2.7.5-hf6b4638_0
  libffi             conda-forge/osx-arm64::libffi-3.5.2-hcf2aa1b_0
  liblzma            conda-forge/osx-arm64::liblzma-5.8.3-h8088a28_0
  libsqlite          conda-forge/osx-arm64::libsqlite-3.53.0-h1b79a29_0
  libzlib            conda-forge/osx-arm64::libzlib-1.3.2-h8088a28_2
  ncurses            conda-forge/osx-arm64::ncurses-6.6-h1d4f5a5_0
  openssl            conda-forge/osx-arm64::openssl-3.6.2-hd24854e_0
  python             conda-forge/osx-arm64::python-3.11.15-h8561d8f_0_cpython
  readline           conda-forge/osx-arm64::readline-8.3-h46df422_0
  tk                 conda-forge/osx-arm64::tk-8.6.13-h010d191_3
  tzdata             conda-forge/noarch::tzdata-2025c-hc9c84f9_1

DryRunExit: Dry run. Exiting.

pip is missing.

Expected / classic solver behavior

Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /opt/homebrew/Caskroom/miniconda/base/envs/repro-classic

  added / updated specs:
    - python=3.11

The following NEW packages will be INSTALLED:

  bzip2              conda-forge/osx-arm64::bzip2-1.0.8-hd037594_9
  ca-certificates    conda-forge/noarch::ca-certificates-2026.4.22-hbd8a1cb_0
  libexpat           conda-forge/osx-arm64::libexpat-2.7.5-hf6b4638_0
  libffi             conda-forge/osx-arm64::libffi-3.5.2-hcf2aa1b_0
  liblzma            conda-forge/osx-arm64::liblzma-5.8.3-h8088a28_0
  libsqlite          conda-forge/osx-arm64::libsqlite-3.53.0-h1b79a29_0
  libzlib            conda-forge/osx-arm64::libzlib-1.3.2-h8088a28_2
  ncurses            conda-forge/osx-arm64::ncurses-6.6-h1d4f5a5_0
  openssl            conda-forge/osx-arm64::openssl-3.6.2-hd24854e_0
  packaging          conda-forge/noarch::packaging-26.2-pyhc364b38_0
  pip                conda-forge/noarch::pip-26.0.1-pyh8b19718_0
  python             conda-forge/osx-arm64::python-3.11.15-h8561d8f_0_cpython
  readline           conda-forge/osx-arm64::readline-8.3-h46df422_0
  setuptools         conda-forge/noarch::setuptools-82.0.1-pyh332efcf_0
  tk                 conda-forge/osx-arm64::tk-8.6.13-h010d191_3
  tzdata             conda-forge/noarch::tzdata-2025c-hc9c84f9_1
  wheel              conda-forge/noarch::wheel-0.47.0-pyhd8ed1ab_0

DryRunExit: Dry run. Exiting.

Conda Info

active environment : base
    active env location : /opt/homebrew/Caskroom/miniconda/base
            shell level : 1
       user config file : /Users/drew/.condarc
 populated config files : /opt/homebrew/Caskroom/miniconda/base/.condarc
                          /opt/homebrew/Caskroom/miniconda/base/condarc.d/anaconda-auth.yml
                          /Users/drew/.condarc
          conda version : 26.3.2
    conda-build version : not installed
         python version : 3.13.13.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=m1
                          __conda=26.3.2=0
                          __osx=26.4.1=0
                          __unix=0=0
       base environment : /opt/homebrew/Caskroom/miniconda/base  (writable)
      conda av data dir : /opt/homebrew/Caskroom/miniconda/base/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/osx-arm64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/osx-arm64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-arm64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /opt/homebrew/Caskroom/miniconda/base/pkgs
                          /Users/drew/.conda/pkgs
       envs directories : /opt/homebrew/Caskroom/miniconda/base/envs
                          /Users/drew/.conda/envs
    temporary directory : /var/folders/9j/bg17plz50cxcvt2dp4s6nmc40000gn/T
               platform : osx-arm64
             user-agent : conda/26.3.2 requests/2.33.1 CPython/3.13.13 Darwin/25.4.0 OSX/26.4.1 solver/libmamba conda-libmamba-solver/26.4.0 libmambapy/2.3.2 aau/0.7.6 c/. s/. e/.
                UID:GID : 501:20
             netrc file : None
           offline mode : False

Conda Config

==> /opt/homebrew/Caskroom/miniconda/base/.condarc <==
channels:
  - defaults

==> /opt/homebrew/Caskroom/miniconda/base/condarc.d/anaconda-auth.yml <==
channel_settings:
  - channel: https://repo.anaconda.cloud/*
    auth: anaconda-auth

==> /Users/drew/.condarc <==
channel_priority: strict
channels:
  - conda-forge
  - defaults

Conda list

# packages in environment at /opt/homebrew/Caskroom/miniconda/base:
#
# Name                      Version          Build               Channel
anaconda-anon-usage         0.7.6            pyhb46e38b_100      defaults
anaconda-auth               0.14.2           py313hca03da5_0     defaults
anaconda-cli-base           0.8.2            py313hca03da5_0     defaults
annotated-types             0.6.0            py313hca03da5_1     defaults
anyio                       4.12.1           py313hca03da5_0     defaults
archspec                    0.2.5            pyhd3eb1b0_0        defaults
boltons                     25.0.0           py313hca03da5_0     defaults
brotlicffi                  1.2.0.0          py313h50f4ffc_0     defaults
bzip2                       1.0.8            h80987f9_6          defaults
c-ares                      1.34.6           hfe05a68_0          defaults
ca-certificates             2026.3.19        hca03da5_0          defaults
certifi                     2026.4.22        py313hca03da5_0     defaults
cffi                        1.17.1           py313h3eb5a62_1     defaults
charset-normalizer          3.4.4            py313hca03da5_0     defaults
click                       8.2.1            py313hca03da5_1     defaults
conda                       26.3.2           py313hca03da5_0     defaults
conda-anaconda-telemetry    0.3.0            pyhd3eb1b0_1        defaults
conda-anaconda-tos          0.2.2            py313hca03da5_1     defaults
conda-content-trust         0.3.1            py313hca03da5_0     defaults
conda-libmamba-solver       26.4.0           pyh3785b3c_0        defaults
conda-package-handling      2.4.0            py313hca03da5_1     defaults
conda-package-streaming     0.12.0           py313hca03da5_1     defaults
cpp-expected                1.1.0            h48ca7d4_0          defaults
cryptography                45.0.7           py313h83bfa8c_0     defaults
distro                      1.9.0            py313hca03da5_0     defaults
fmt                         12.1.0           hc20ec9e_0          defaults
frozendict                  2.4.6            py313haa24f5a_0     defaults
gettext                     0.25.1           h50c8ec2_0          defaults
gettext-tools               0.25.1           h61de102_0          defaults
h11                         0.16.0           py313hca03da5_1     defaults
httpcore                    1.0.9            py313hca03da5_0     defaults
httpx                       0.28.1           py313hca03da5_1     defaults
icu                         73.1             h313beb8_0          defaults
idna                        3.11             py313hca03da5_0     defaults
jansson                     2.14             h80987f9_1          defaults
jaraco.classes              3.4.0            py313hca03da5_0     defaults
jaraco.context              6.1.0            py313hca03da5_0     defaults
jaraco.functools            4.4.0            py313hca03da5_0     defaults
jsonpatch                   1.33             py313hca03da5_1     defaults
jsonpointer                 3.1.1            py313hca03da5_0     defaults
keyring                     25.7.0           py313hca03da5_0     defaults
libarchive                  3.8.2            ha845c4f_0          defaults
libasprintf                 0.25.1           h7b764f5_0          defaults
libasprintf-devel           0.25.1           h7b764f5_0          defaults
libbrotlicommon             1.2.0            hbd7815e_0          defaults
libbrotlidec                1.2.0            h1e834b2_0          defaults
libbrotlienc                1.2.0            h5439a07_0          defaults
libcurl                     8.19.0           hc5dca5f_0          defaults
libcxx                      22.1.2           hf894667_0          defaults
libev                       4.33             h1a28f6b_1          defaults
libexpat                    2.7.5            h50f4ffc_0          defaults
libffi                      3.4.8            hcfc0b96_2          defaults
libgettextpo                0.25.1           h7b764f5_0          defaults
libgettextpo-devel          0.25.1           h7b764f5_0          defaults
libiconv                    1.18             h92f5915_0          defaults
libidn2                     2.3.8            h9681e36_0          defaults
libintl                     0.25.1           h7b764f5_0          defaults
libintl-devel               0.25.1           h7b764f5_0          defaults
libkrb5                     1.22.1           hbbdc3aa_1          defaults
libmamba                    2.3.2            hccd2f93_2          defaults
libmambapy                  2.3.2            py313h678a34b_2     defaults
libmpdec                    4.0.0            h80987f9_0          defaults
libnghttp2                  1.67.1           h8189af8_0          defaults
libsolv                     0.7.30           ha443353_2          defaults
libssh2                     1.11.1           h3e2b118_0          defaults
libunistring                1.3              h1799b2a_0          defaults
libxml2                     2.13.9           h528a072_0          defaults
libzlib                     1.3.1            hb4cf58c_1          defaults
lmdb                        0.9.31           h79febb2_0          defaults
lz4-c                       1.9.4            h313beb8_1          defaults
markdown-it-py              4.0.0            py313hca03da5_1     defaults
mdurl                       0.1.2            py313hca03da5_0     defaults
menuinst                    2.4.2            py313hca03da5_1     defaults
more-itertools              11.0.2           py313hca03da5_0     defaults
msgpack-python              1.1.1            py313h313beb8_0     defaults
ncurses                     6.5              hee39554_0          defaults
nlohmann_json               3.11.2           h313beb8_0          defaults
openssl                     3.5.6            ha0b305a_0          defaults
packaging                   26.0             py313hca03da5_0     defaults
pcre2                       10.46            h1dacb4a_0          defaults
pip                         26.0.1           pyhc872135_1        defaults
pkce                        1.0.3            py313hca03da5_0     defaults
platformdirs                4.9.4            py313hca03da5_0     defaults
pluggy                      1.6.0            py313hca03da5_0     defaults
pybind11-abi                5                hd3eb1b0_0          defaults
pycosat                     0.6.6            py313h80987f9_2     defaults
pycparser                   3.0              py313hca03da5_0     defaults
pydantic                    2.13.2           py313hca03da5_0     defaults
pydantic-core               2.46.2           py313h3983f12_0     defaults
pydantic-settings           2.12.0           py313hca03da5_0     defaults
pygments                    2.20.0           py313hca03da5_0     defaults
pyjwt                       2.12.1           py313hca03da5_0     defaults
pysocks                     1.7.1            py313hca03da5_1     defaults
python                      3.13.13          ha8cd034_100_cp313  defaults
python-dotenv               1.2.1            py313hca03da5_0     defaults
python.app                  3                py313h80987f9_2     defaults
python_abi                  3.13             3_cp313             defaults
readchar                    4.2.1            py313hca03da5_0     defaults
readline                    8.3              h0b18652_0          defaults
reproc                      14.2.4           h313beb8_2          defaults
reproc-cpp                  14.2.4           h313beb8_2          defaults
requests                    2.33.1           py313hca03da5_0     defaults
rich                        14.2.0           py313hca03da5_0     defaults
ruamel.yaml                 0.18.16          py313h091b9d3_0     defaults
ruamel.yaml.clib            0.2.14           py313h091b9d3_0     defaults
semver                      3.0.4            py313hca03da5_0     defaults
setuptools                  82.0.1           py313hca03da5_0     defaults
shellingham                 1.5.4            py313hca03da5_0     defaults
simdjson                    3.10.1           h48ca7d4_0          defaults
sqlite                      3.51.2           h67002bf_0          defaults
tk                          8.6.15           hcd8a7d5_0          defaults
tomli                       2.4.0            py313hca03da5_0     defaults
tomlkit                     0.13.3           py313hca03da5_0     defaults
tqdm                        4.67.3           py313h7eb115d_1     defaults
truststore                  0.10.1           py313hca03da5_1     defaults
typer                       0.20.0           py313hca03da5_1     defaults
typer-slim                  0.20.0           py313hca03da5_1     defaults
typer-slim-standard         0.20.0           py313hca03da5_1     defaults
typing-extensions           4.15.0           py313hca03da5_0     defaults
typing-inspection           0.4.2            py313hca03da5_0     defaults
typing_extensions           4.15.0           py313hca03da5_0     defaults
tzdata                      2026a            he532380_0          defaults
urllib3                     2.6.3            py313hca03da5_0     defaults
wheel                       0.46.3           py313hca03da5_0     defaults
xz                          5.8.2            h8bbcb1d_0          defaults
yaml-cpp                    0.8.0            h313beb8_1          defaults
zlib                        1.3.1            hb4cf58c_1          defaults
zstandard                   0.25.0           py313hb3cf4b8_0     defaults
zstd                        1.5.7            h817c040_0          defaults

Additional Context

Related but not exact reports:

Those appear related to add_pip_as_python_dependency handling in libmamba/conda-build contexts. This report is for normal conda create behavior with conda-forge and the default libmamba solver.

The base environment itself includes pip from defaults, but the repro is about newly created conda-forge environments with libmamba.

Current solver stack:

solver : libmamba (default)
user-agent : conda/26.3.2 requests/2.33.1 CPython/3.13.13 Darwin/25.4.0 OSX/26.4.1 solver/libmamba conda-libmamba-solver/26.4.0 libmambapy/2.3.2 aau/0.7.6 c/. s/. e/.

Metadata

Metadata

Assignees

No one assigned

    Labels

    type::bugdescribes erroneous operation, use severity::* to classify the type

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions