Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Self-hosted conda-lock fails to find distutils #761

Open
2 tasks done
thisrod opened this issue Dec 17, 2024 · 4 comments
Open
2 tasks done

Self-hosted conda-lock fails to find distutils #761

thisrod opened this issue Dec 17, 2024 · 4 comments

Comments

@thisrod
Copy link

thisrod commented Dec 17, 2024

Checklist

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

What happened?

The steps to reproduce are:

  1. Create and activate an empty Bootstrap conda environment.
  2. Install conda-lock in the Bootstrap environment.
  3. Export to environment.yml
  4. Solve for conda-lock.yml
  5. Install the lock file in a SelfHost environment
  6. Activate the SelfHost environment
  7. Solve for second.conda-lock.yml.

I hoped to get two identical lock files, but the last step failed with a similar symptom to #542 and #607.

The motivation for this was similar to #642, to have a Bootstrap environment with a fixed version of conda-lock.

See Additional Context for a PowerShell transcript.

Additional Context

PowerShell transcript

(bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda create -n Bootstrap python
Channels:
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap

  added / updated specs:
    - python


The following NEW packages will be INSTALLED:

  bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
  ca-certificates    pkgs/main/win-64::ca-certificates-2024.11.26-haa95532_0
  expat              pkgs/main/win-64::expat-2.6.4-h8ddb27b_0
  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
  libmpdec           pkgs/main/win-64::libmpdec-4.0.0-h827c3e9_0
  openssl            pkgs/main/win-64::openssl-3.0.15-h827c3e9_0
  pip                pkgs/main/win-64::pip-24.2-py313haa95532_0
  python             pkgs/main/win-64::python-3.13.1-hadb2040_100_cp313
  python_abi         pkgs/main/win-64::python_abi-3.13-0_cp313
  setuptools         pkgs/main/win-64::setuptools-75.1.0-py313haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.45.3-h2bbff1b_0
  tk                 pkgs/main/win-64::tk-8.6.14-h0416ee5_0
  tzdata             pkgs/main/noarch::tzdata-2024b-h04d1e81_0
  vc                 pkgs/main/win-64::vc-14.40-haa95532_2
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.42.34433-h9531ae6_2
  wheel              pkgs/main/win-64::wheel-0.44.0-py313haa95532_0
  xz                 pkgs/main/win-64::xz-5.4.6-h8cc25b3_1
  zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1


Proceed ([y]/n)?


Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate Bootstrap
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda activate Bootstrap
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda install  --channel=conda-forge conda-lock
Channels:
 - conda-forge
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap

  added / updated specs:
    - conda-lock


The following NEW packages will be INSTALLED:

  annotated-types    conda-forge/noarch::annotated-types-0.7.0-pyhd8ed1ab_1
  appdirs            conda-forge/noarch::appdirs-1.4.4-pyhd8ed1ab_1
  backports          conda-forge/noarch::backports-1.0-pyhd8ed1ab_5
  backports.tarfile  conda-forge/noarch::backports.tarfile-1.2.0-pyhd8ed1ab_1
  brotli-python      conda-forge/win-64::brotli-python-1.1.0-py313h5813708_2
  cachecontrol       conda-forge/noarch::cachecontrol-0.14.1-pyha770c72_1
  cachecontrol-with~ conda-forge/noarch::cachecontrol-with-filecache-0.14.1-pyhd8ed1ab_1
  cachy              conda-forge/noarch::cachy-0.3.0-pyhd8ed1ab_1
  certifi            conda-forge/noarch::certifi-2024.12.14-pyhd8ed1ab_0
  charset-normalizer conda-forge/noarch::charset-normalizer-3.4.0-pyhd8ed1ab_1
  click              conda-forge/noarch::click-8.1.7-win_pyh7428d3b_1
  click-default-gro~ conda-forge/noarch::click-default-group-1.2.4-pyhd8ed1ab_1
  clikit             conda-forge/noarch::clikit-0.6.2-pyhd8ed1ab_2
  colorama           conda-forge/noarch::colorama-0.4.6-pyhd8ed1ab_1
  conda-lock         conda-forge/noarch::conda-lock-2.5.7-pyhd8ed1ab_0
  crashtest          conda-forge/noarch::crashtest-0.4.1-pyhd8ed1ab_1
  distlib            conda-forge/noarch::distlib-0.3.9-pyhd8ed1ab_1
  ensureconda        conda-forge/noarch::ensureconda-1.4.4-pyhd8ed1ab_0
  filelock           conda-forge/noarch::filelock-3.16.1-pyhd8ed1ab_1
  gitdb              conda-forge/noarch::gitdb-4.0.11-pyhd8ed1ab_1
  gitpython          conda-forge/noarch::gitpython-3.1.43-pyhff2d567_1
  html5lib           conda-forge/noarch::html5lib-1.1-pyhd8ed1ab_2
  idna               conda-forge/noarch::idna-3.10-pyhd8ed1ab_1
  importlib-metadata conda-forge/noarch::importlib-metadata-8.5.0-pyha770c72_1
  importlib_resourc~ conda-forge/noarch::importlib_resources-6.4.5-pyhd8ed1ab_1
  jaraco.classes     conda-forge/noarch::jaraco.classes-3.4.0-pyhd8ed1ab_2
  jaraco.context     conda-forge/noarch::jaraco.context-6.0.1-pyhd8ed1ab_0
  jaraco.functools   conda-forge/noarch::jaraco.functools-4.1.0-pyhd8ed1ab_0
  jinja2             conda-forge/noarch::jinja2-3.1.4-pyhd8ed1ab_1
  keyring            conda-forge/noarch::keyring-25.5.0-pyh7428d3b_1
  markupsafe         conda-forge/win-64::markupsafe-3.0.2-py313hb4c8b1a_1
  more-itertools     conda-forge/noarch::more-itertools-10.5.0-pyhd8ed1ab_1
  msgpack-python     conda-forge/win-64::msgpack-python-1.1.0-py313h1ec8472_0
  packaging          conda-forge/noarch::packaging-24.2-pyhd8ed1ab_2
  pastel             conda-forge/noarch::pastel-0.2.1-pyhd8ed1ab_0
  pkginfo            conda-forge/noarch::pkginfo-1.12.0-pyhd8ed1ab_1
  platformdirs       conda-forge/noarch::platformdirs-4.3.6-pyhd8ed1ab_1
  pydantic           conda-forge/noarch::pydantic-2.10.3-pyh3cfb1c2_0
  pydantic-core      conda-forge/win-64::pydantic-core-2.27.1-py313hf3b5b86_0
  pylev              conda-forge/noarch::pylev-1.4.0-pyhd8ed1ab_0
  pysocks            conda-forge/noarch::pysocks-1.7.1-pyh09c184e_7
  pywin32-ctypes     conda-forge/win-64::pywin32-ctypes-0.2.3-py313hfa70ccb_1
  pyyaml             conda-forge/win-64::pyyaml-6.0.2-py313ha7868ed_1
  requests           conda-forge/noarch::requests-2.32.3-pyhd8ed1ab_1
  ruamel.yaml        conda-forge/win-64::ruamel.yaml-0.18.6-py313ha7868ed_1
  ruamel.yaml.clib   conda-forge/win-64::ruamel.yaml.clib-0.2.8-py313ha7868ed_1
  six                conda-forge/noarch::six-1.17.0-pyhd8ed1ab_0
  smmap              conda-forge/noarch::smmap-5.0.0-pyhd8ed1ab_0
  tomli              conda-forge/noarch::tomli-2.2.1-pyhd8ed1ab_1
  tomlkit            conda-forge/noarch::tomlkit-0.13.2-pyha770c72_1
  toolz              conda-forge/noarch::toolz-0.12.1-pyhd8ed1ab_0
  typing-extensions  conda-forge/noarch::typing-extensions-4.12.2-hd8ed1ab_1
  typing_extensions  conda-forge/noarch::typing_extensions-4.12.2-pyha770c72_1
  ucrt               conda-forge/win-64::ucrt-10.0.22621.0-h57928b3_1
  urllib3            conda-forge/noarch::urllib3-1.26.19-pyhd8ed1ab_0
  vc14_runtime       conda-forge/win-64::vc14_runtime-14.42.34433-he29a5d6_23
  virtualenv         conda-forge/noarch::virtualenv-20.28.0-pyhd8ed1ab_0
  webencodings       conda-forge/noarch::webencodings-0.5.1-pyhd8ed1ab_3
  win_inet_pton      conda-forge/noarch::win_inet_pton-1.1.0-pyh7428d3b_8
  yaml               conda-forge/win-64::yaml-0.2.5-h8ffe710_2
  zipp               conda-forge/noarch::zipp-3.21.0-pyhd8ed1ab_1

The following packages will be UPDATED:

  ca-certificates    pkgs/main::ca-certificates-2024.11.26~ --> conda-forge::ca-certificates-2024.12.14-h56e8100_0
  openssl              pkgs/main::openssl-3.0.15-h827c3e9_0 --> conda-forge::openssl-3.4.0-h2466b09_0
  vs2015_runtime     pkgs/main::vs2015_runtime-14.42.34433~ --> conda-forge::vs2015_runtime-14.42.34433-hdffcdeb_23


Proceed ([y]/n)?


Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda env export --from-history > environment.yml
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock -f .\environment.yml -p win-64
Locking dependencies for ['win-64']...
INFO:conda_lock.conda_solver:win-64 using specs ['python', 'conda-lock']
 - Install lock using: conda-lock install --name YOURENV conda-lock.yml
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock install --name SelfHost .\conda-lock.yml
INFO:root:Downloading and Extracting Packages: ...working... done
INFO:root:
INFO:root:## Package Plan ##
INFO:root:
INFO:root:  environment location: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost
INFO:root:
INFO:root:  added / updated specs:
INFO:root:    - defaults/noarch::appdirs==1.4.4=pyhd3eb1b0_0[md5=5673d98d06171cb6eed03a6736845c4d]
INFO:root:    - defaults/noarch::cachy==0.3.0=pyhd3eb1b0_0[md5=fcb19b85ad100b509f744e339c50871e]
INFO:root:    - defaults/noarch::charset-normalizer==3.3.2=pyhd3eb1b0_0[md5=c6fea3691e85cf7f568b0618ec29fc4f]
INFO:root:    - defaults/noarch::clikit==0.6.2=py_0[md5=281a572ac24a9d39f42d4f0e14cfeb8e]
INFO:root:    - defaults/noarch::crashtest==0.3.1=pyhd3eb1b0_1[md5=cc0df6f8162939216c20d9c2772f4b68]
INFO:root:    - defaults/noarch::gitdb==4.0.7=pyhd3eb1b0_0[md5=bdd15a7149734880c003d98110c56b5b]
INFO:root:    - defaults/noarch::html5lib==1.1=pyhd3eb1b0_0[md5=24c4f675dfc77f9d1ae6cd3c33731c3c]
INFO:root:    - defaults/noarch::jaraco.classes==3.2.1=pyhd3eb1b0_0[md5=7f47c66b55e92b2724174847703df72f]
INFO:root:    - defaults/noarch::pastel==0.2.1=py_0[md5=81a0d5c930710445569d9a2f5137d6a2]
INFO:root:    - defaults/noarch::pycparser==2.21=pyhd3eb1b0_0[md5=135a72ff2a31150a3a3ff0b1edd41ca9]
INFO:root:    - defaults/noarch::pylev==1.3.0=py_0[md5=8753b52aad70b2ed2ebaa6031853c816]
INFO:root:    - defaults/noarch::six==1.16.0=pyhd3eb1b0_1[md5=34586824d411d36af2fa40e799c172d0]
INFO:root:    - defaults/noarch::smmap==4.0.0=pyhd3eb1b0_0[md5=ea22ec22100b09799aa81f3e3ef9fa87]
INFO:root:    - defaults/noarch::tzdata==2024b=h04d1e81_0[md5=9be694715c6a65f9631bb1b242125e9d]
INFO:root:    - defaults/win-64::annotated-types==0.6.0=py312haa95532_0[md5=8d345a965a3da046a6956185e8c9d739]
INFO:root:    - defaults/win-64::brotli-python==1.0.9=py312hd77b12b_8[md5=59ff3db1abed10f8b7705c41f5199573]
INFO:root:    - defaults/win-64::bzip2==1.0.8=h2bbff1b_6[md5=33e784123d565c38e68945f07b461282]
INFO:root:    - defaults/win-64::ca-certificates==2024.11.26=haa95532_0[md5=1eab4288c83f2a4d26692974bc532220]
INFO:root:    - defaults/win-64::cachecontrol-with-filecache==0.14.0=py312haa95532_1[md5=1b63f5b4d1d9ab55e355dcb34b509ca0]
INFO:root:    - defaults/win-64::cachecontrol==0.14.0=py312haa95532_1[md5=6fc3ee0bba130fa39a5ed28cfea23228]
INFO:root:    - defaults/win-64::certifi==2024.8.30=py312haa95532_0[md5=46d3270437bbd000f59be32b1a0ccdce]
INFO:root:    - defaults/win-64::cffi==1.17.1=py312h827c3e9_0[md5=fcef370fa986fc1ee293f82af8323339]
INFO:root:    - defaults/win-64::click-default-group==1.2.2=py312haa95532_0[md5=7b74b1031a6e24010e45ac0a6a24b14f]
INFO:root:    - defaults/win-64::click==8.1.7=py312haa95532_0[md5=12daed12ef284a081d3f0e0b580a3b5b]
INFO:root:    - defaults/win-64::colorama==0.4.6=py312haa95532_0[md5=161baa1308cf84c4817497287afb709a]
INFO:root:    - defaults/win-64::conda-lock==2.5.6=py312haa95532_0[md5=532ae540327907c5a018884f0c5a3a9f]
INFO:root:    - defaults/win-64::cryptography==43.0.3=py312hbd6ee87_1[md5=aabb66bdd241d82f159f1d229789b249]
INFO:root:    - defaults/win-64::distlib==0.3.8=py312haa95532_0[md5=4eb64552149cbe8e9f529c98c50acc4c]
INFO:root:    - defaults/win-64::ensureconda==1.4.4=py312haa95532_1[md5=33339efc00bcce64961221bfcfbb09cf]
INFO:root:    - defaults/win-64::expat==2.6.4=h8ddb27b_0[md5=4051c708005296ddd0c080d38f4203e1]
INFO:root:    - defaults/win-64::filelock==3.13.1=py312haa95532_0[md5=4ed2666b1d1ba1dc53229ecac885c134]
INFO:root:    - defaults/win-64::gitpython==3.1.43=py312haa95532_0[md5=20392fbd045721753466d09623089463]
INFO:root:    - defaults/win-64::idna==3.7=py312haa95532_0[md5=114efaad1ed61e1d00e3bbad0aac7d86]
INFO:root:    - defaults/win-64::jinja2==3.1.4=py312haa95532_1[md5=1b31978728d3f54f3f6d97de66369988]
INFO:root:    - defaults/win-64::keyring==24.3.1=py312haa95532_0[md5=5e9a1a2d4767209e1e5ec933bcdb01bd]
INFO:root:    - defaults/win-64::libffi==3.4.4=hd77b12b_1[md5=9807b377e11739ae3e920e10e607e460]
INFO:root:    - defaults/win-64::markupsafe==2.1.3=py312h2bbff1b_0[md5=5c006436f8dfef51f9fa40426d93fa7a]
INFO:root:    - defaults/win-64::more-itertools==10.3.0=py312haa95532_0[md5=306d39b9d09b1bd8eb02d21d35897594]
INFO:root:    - defaults/win-64::msgpack-python==1.0.3=py312h59b6b97_0[md5=53c1f9b0600f36d86e6cdf25195881e8]
INFO:root:    - defaults/win-64::openssl==3.0.15=h827c3e9_0[md5=7781aef6d9439002465f12df75789757]
INFO:root:    - defaults/win-64::packaging==24.1=py312haa95532_0[md5=b5ecc0a9c2cc5a1e44f9dd4598c4df50]
INFO:root:    - defaults/win-64::pkginfo==1.11.2=py312haa95532_0[md5=8f98d2e0c999c1fc08486f254fccf0d8]
INFO:root:    - defaults/win-64::platformdirs==3.10.0=py312haa95532_0[md5=21714abfa08e1d6e0435b9768ead622a]
INFO:root:    - defaults/win-64::pydantic-core==2.20.1=py312hefb1915_0[md5=1c05b65e815930e0ddf3a8f2896adcae]
INFO:root:    - defaults/win-64::pydantic==2.8.2=py312haa95532_0[md5=846d49de651d073ee775e2448190149f]
INFO:root:    - defaults/win-64::pyopenssl==24.2.1=py312haa95532_0[md5=cab227e3e0205f956b7d13ebc3118af6]
INFO:root:    - defaults/win-64::pysocks==1.7.1=py312haa95532_0[md5=e5f7b8790925322357ee89cc7ae5bb1c]
INFO:root:    - defaults/win-64::python==3.12.8=h14ffc60_0[md5=3cd26c4417640ae8134b4f4aa9499d32]
INFO:root:    - defaults/win-64::pywin32-ctypes==0.2.2=py312haa95532_0[md5=22f037bf4d3f42e99bfdf345bb407e51]
INFO:root:    - defaults/win-64::pyyaml==6.0.2=py312h827c3e9_0[md5=d3191c546f79d40bc826b9ea36e24f0b]
INFO:root:    - defaults/win-64::requests==2.32.3=py312haa95532_1[md5=578fbe35c5cd97907460f54a5da5e527]
INFO:root:    - defaults/win-64::ruamel.yaml.clib==0.2.8=py312h827c3e9_0[md5=a4c0471292bd589a1d8da0e5adbd45e4]
INFO:root:    - defaults/win-64::ruamel.yaml==0.18.6=py312h827c3e9_0[md5=023be647f9a82f66db5fa1388e67e1fb]
INFO:root:    - defaults/win-64::sqlite==3.45.3=h2bbff1b_0[md5=c5b3b929349655302bf811c45571da6d]
INFO:root:    - defaults/win-64::tk==8.6.14=h0416ee5_0[md5=da75707c571825eb2ad0eb806710b16b]
INFO:root:    - defaults/win-64::tomlkit==0.13.2=py312haa95532_0[md5=9e89ec07fd7050ab4cb57b441149f593]
INFO:root:    - defaults/win-64::toolz==0.12.0=py312haa95532_0[md5=fbdb7028a9962ba589efe2f45e12dfc7]
INFO:root:    - defaults/win-64::typing-extensions==4.11.0=py312haa95532_0[md5=2918633056b06d8a122e86f79e89ddd9]
INFO:root:    - defaults/win-64::typing_extensions==4.11.0=py312haa95532_0[md5=692d3960a098c8f463a1ccbf02cae9d6]
INFO:root:    - defaults/win-64::urllib3==1.26.19=py312haa95532_0[md5=eb7ed6516804b6c0105a8a181d7b7d42]
INFO:root:    - defaults/win-64::vc==14.40=haa95532_2[md5=d0a53bd27696fe718c3662812675e473]
INFO:root:    - defaults/win-64::virtualenv==20.28.0=py312haa95532_0[md5=ee63ce9947310b4bc2b3f2582060b5e8]
INFO:root:    - defaults/win-64::vs2015_runtime==14.42.34433=h9531ae6_2[md5=4b7a61e3eff596a8a90aca817be3cf4f]
INFO:root:    - defaults/win-64::webencodings==0.5.1=py312haa95532_2[md5=0adab6426342ac105941b97f0fd9a55b]
INFO:root:    - defaults/win-64::win_inet_pton==1.1.0=py312haa95532_0[md5=3ba2805fbd7809df9a5628c068b9d873]
INFO:root:    - defaults/win-64::xz==5.4.6=h8cc25b3_1[md5=cd89b06b0e59712386f00a41fb2dec32]
INFO:root:    - defaults/win-64::yaml==0.2.5=he774522_0[md5=959a63017c520ef9d345bd82ab344e3e]
INFO:root:    - defaults/win-64::zlib==1.2.13=h8cc25b3_1[md5=1f7ea85632611b25599e4cddf5b51d7d]
INFO:root:
INFO:root:
INFO:root:The following NEW packages will be INSTALLED:
INFO:root:
INFO:root:  annotated-types    pkgs/main/win-64::annotated-types-0.6.0-py312haa95532_0
INFO:root:  appdirs            pkgs/main/noarch::appdirs-1.4.4-pyhd3eb1b0_0
INFO:root:  brotli-python      pkgs/main/win-64::brotli-python-1.0.9-py312hd77b12b_8
INFO:root:  bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
INFO:root:  ca-certificates    pkgs/main/win-64::ca-certificates-2024.11.26-haa95532_0
INFO:root:  cachecontrol       pkgs/main/win-64::cachecontrol-0.14.0-py312haa95532_1
INFO:root:  cachecontrol-with~ pkgs/main/win-64::cachecontrol-with-filecache-0.14.0-py312haa95532_1
INFO:root:  cachy              pkgs/main/noarch::cachy-0.3.0-pyhd3eb1b0_0
INFO:root:  certifi            pkgs/main/win-64::certifi-2024.8.30-py312haa95532_0
INFO:root:  cffi               pkgs/main/win-64::cffi-1.17.1-py312h827c3e9_0
INFO:root:  charset-normalizer pkgs/main/noarch::charset-normalizer-3.3.2-pyhd3eb1b0_0
INFO:root:  click              pkgs/main/win-64::click-8.1.7-py312haa95532_0
INFO:root:  click-default-gro~ pkgs/main/win-64::click-default-group-1.2.2-py312haa95532_0
INFO:root:  clikit             pkgs/main/noarch::clikit-0.6.2-py_0
INFO:root:  colorama           pkgs/main/win-64::colorama-0.4.6-py312haa95532_0
INFO:root:  conda-lock         pkgs/main/win-64::conda-lock-2.5.6-py312haa95532_0
INFO:root:  crashtest          pkgs/main/noarch::crashtest-0.3.1-pyhd3eb1b0_1
INFO:root:  cryptography       pkgs/main/win-64::cryptography-43.0.3-py312hbd6ee87_1
INFO:root:  distlib            pkgs/main/win-64::distlib-0.3.8-py312haa95532_0
INFO:root:  ensureconda        pkgs/main/win-64::ensureconda-1.4.4-py312haa95532_1
INFO:root:  expat              pkgs/main/win-64::expat-2.6.4-h8ddb27b_0
INFO:root:  filelock           pkgs/main/win-64::filelock-3.13.1-py312haa95532_0
INFO:root:  gitdb              pkgs/main/noarch::gitdb-4.0.7-pyhd3eb1b0_0
INFO:root:  gitpython          pkgs/main/win-64::gitpython-3.1.43-py312haa95532_0
INFO:root:  html5lib           pkgs/main/noarch::html5lib-1.1-pyhd3eb1b0_0
INFO:root:  idna               pkgs/main/win-64::idna-3.7-py312haa95532_0
INFO:root:  jaraco.classes     pkgs/main/noarch::jaraco.classes-3.2.1-pyhd3eb1b0_0
INFO:root:  jinja2             pkgs/main/win-64::jinja2-3.1.4-py312haa95532_1
INFO:root:  keyring            pkgs/main/win-64::keyring-24.3.1-py312haa95532_0
INFO:root:  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
INFO:root:  markupsafe         pkgs/main/win-64::markupsafe-2.1.3-py312h2bbff1b_0
INFO:root:  more-itertools     pkgs/main/win-64::more-itertools-10.3.0-py312haa95532_0
INFO:root:  msgpack-python     pkgs/main/win-64::msgpack-python-1.0.3-py312h59b6b97_0
INFO:root:  openssl            pkgs/main/win-64::openssl-3.0.15-h827c3e9_0
INFO:root:  packaging          pkgs/main/win-64::packaging-24.1-py312haa95532_0
INFO:root:  pastel             pkgs/main/noarch::pastel-0.2.1-py_0
INFO:root:  pkginfo            pkgs/main/win-64::pkginfo-1.11.2-py312haa95532_0
INFO:root:  platformdirs       pkgs/main/win-64::platformdirs-3.10.0-py312haa95532_0
INFO:root:  pycparser          pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0
INFO:root:  pydantic           pkgs/main/win-64::pydantic-2.8.2-py312haa95532_0
INFO:root:  pydantic-core      pkgs/main/win-64::pydantic-core-2.20.1-py312hefb1915_0
INFO:root:  pylev              pkgs/main/noarch::pylev-1.3.0-py_0
INFO:root:  pyopenssl          pkgs/main/win-64::pyopenssl-24.2.1-py312haa95532_0
INFO:root:  pysocks            pkgs/main/win-64::pysocks-1.7.1-py312haa95532_0
INFO:root:  python             pkgs/main/win-64::python-3.12.8-h14ffc60_0
INFO:root:  pywin32-ctypes     pkgs/main/win-64::pywin32-ctypes-0.2.2-py312haa95532_0
INFO:root:  pyyaml             pkgs/main/win-64::pyyaml-6.0.2-py312h827c3e9_0
INFO:root:  requests           pkgs/main/win-64::requests-2.32.3-py312haa95532_1
INFO:root:  ruamel.yaml        pkgs/main/win-64::ruamel.yaml-0.18.6-py312h827c3e9_0
INFO:root:  ruamel.yaml.clib   pkgs/main/win-64::ruamel.yaml.clib-0.2.8-py312h827c3e9_0
INFO:root:  six                pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_1
INFO:root:  smmap              pkgs/main/noarch::smmap-4.0.0-pyhd3eb1b0_0
INFO:root:  sqlite             pkgs/main/win-64::sqlite-3.45.3-h2bbff1b_0
INFO:root:  tk                 pkgs/main/win-64::tk-8.6.14-h0416ee5_0
INFO:root:  tomlkit            pkgs/main/win-64::tomlkit-0.13.2-py312haa95532_0
INFO:root:  toolz              pkgs/main/win-64::toolz-0.12.0-py312haa95532_0
INFO:root:  typing-extensions  pkgs/main/win-64::typing-extensions-4.11.0-py312haa95532_0
INFO:root:  typing_extensions  pkgs/main/win-64::typing_extensions-4.11.0-py312haa95532_0
INFO:root:  tzdata             pkgs/main/noarch::tzdata-2024b-h04d1e81_0
INFO:root:  urllib3            pkgs/main/win-64::urllib3-1.26.19-py312haa95532_0
INFO:root:  vc                 pkgs/main/win-64::vc-14.40-haa95532_2
INFO:root:  virtualenv         pkgs/main/win-64::virtualenv-20.28.0-py312haa95532_0
INFO:root:  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.42.34433-h9531ae6_2
INFO:root:  webencodings       pkgs/main/win-64::webencodings-0.5.1-py312haa95532_2
INFO:root:  win_inet_pton      pkgs/main/win-64::win_inet_pton-1.1.0-py312haa95532_0
INFO:root:  xz                 pkgs/main/win-64::xz-5.4.6-h8cc25b3_1
INFO:root:  yaml               pkgs/main/win-64::yaml-0.2.5-he774522_0
INFO:root:  zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1
INFO:root:
INFO:root:
INFO:root:
INFO:root:Downloading and Extracting Packages: ...working... done
INFO:root:Preparing transaction: ...working... done
INFO:root:Verifying transaction: ...working... done
INFO:root:Executing transaction: ...working... done
INFO:root:#
INFO:root:# To activate this environment, use
INFO:root:#
INFO:root:#     $ conda activate SelfHost
INFO:root:#
INFO:root:# To deactivate an active environment, use
INFO:root:#
INFO:root:#     $ conda deactivate
INFO:root:
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda activate SelfHost
(SelfHost) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock -f .\environment.yml --lockfile second.conda-lock.yml -p win-64
Traceback (most recent call last):
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Scripts\conda-lock-script.py", line 6, in <module>
    from conda_lock import main
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\__init__.py", line 3, in <module>
    from conda_lock.conda_lock import main
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\conda_lock.py", line 50, in <module>
    from conda_lock.conda_solver import solve_conda
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\conda_solver.py", line 19, in <module>
    from conda_lock.interfaces.vendored_conda import MatchSpec
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\interfaces\vendored_conda.py", line 2, in <module>
    from conda_lock._vendor.conda.models.match_spec import MatchSpec
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\models\match_spec.py", line 20, in <module>
    from .channel import Channel
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\models\channel.py", line 17, in <module>
    from ..base.context import context, Context
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\base\context.py", line 55, in <module>
    from ..common.configuration import (Configuration, ConfigurationLoadError, MapParameter,
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\common\configuration.py", line 41, in <module>
    from .path import expand
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\common\path.py", line 21, in <module>
    from distutils.spawn import find_executable
ModuleNotFoundError: No module named 'distutils'
(SelfHost) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial>

environment.yml

name: Bootstrap
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - https://repo.anaconda.com/pkgs/msys2
dependencies:
  - python
  - conda-lock
prefix: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap

conda-lock.yml

# This lock file was generated by conda-lock (https://github.com/conda/conda-lock). DO NOT EDIT!
#
# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike
# e.g. `conda env create`, the resulting environment will not change as new package versions become
# available, unless you explicitly update the lock file.
#
# Install this environment as "YOURENV" with:
#     conda-lock install -n YOURENV conda-lock.yml
# To update a single package to the latest version compatible with the version constraints in the source:
#     conda-lock lock  --lockfile conda-lock.yml --update PACKAGE
# To re-solve the entire environment, e.g. after changing a version constraint in the source file:
#     conda-lock -f bootstrap.yml --lockfile conda-lock.yml
version: 1
metadata:
  content_hash:
    win-64: bfb94ae9aaefb104bc8ff31e97df96bde1cce84e8ed1596386cbef2c27c96dd1
  channels:
  - url: defaults
    used_env_vars: []
  - url: https://repo.anaconda.com/pkgs/main
    used_env_vars: []
  - url: https://repo.anaconda.com/pkgs/r
    used_env_vars: []
  - url: https://repo.anaconda.com/pkgs/msys2
    used_env_vars: []
  platforms:
  - win-64
  sources:
  - bootstrap.yml
package:
- name: annotated-types
  version: 0.6.0
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/annotated-types-0.6.0-py312haa95532_0.conda
  hash:
    md5: 8d345a965a3da046a6956185e8c9d739
    sha256: 50b539c944af458bb9944f35fc84557a3859b8a1dc196fb59d504a7f095dfcef
  category: main
  optional: false
- name: appdirs
  version: 1.4.4
  manager: conda
  platform: win-64
  dependencies:
    python: ''
  url: https://repo.anaconda.com/pkgs/main/noarch/appdirs-1.4.4-pyhd3eb1b0_0.conda
  hash:
    md5: 5673d98d06171cb6eed03a6736845c4d
    sha256: 4d849f6c8a4b60166ec21c7716de9589c083c74416a64876dd9ac6c613520a08
  category: main
  optional: false
- name: brotli-python
  version: 1.0.9
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/brotli-python-1.0.9-py312hd77b12b_8.conda
  hash:
    md5: 59ff3db1abed10f8b7705c41f5199573
    sha256: fd43935d9710a5b2be962a31999d42029a5802c60b6afba6c8777dcdeae6ee21
  category: main
  optional: false
- name: bzip2
  version: 1.0.8
  manager: conda
  platform: win-64
  dependencies:
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/bzip2-1.0.8-h2bbff1b_6.conda
  hash:
    md5: 33e784123d565c38e68945f07b461282
    sha256: 4e30c9bfd4501555b0859c863e95ea044290babf3bf190b9d4fb38b06cf15c3c
  category: main
  optional: false
- name: ca-certificates
  version: 2024.11.26
  manager: conda
  platform: win-64
  dependencies: {}
  url: https://repo.anaconda.com/pkgs/main/win-64/ca-certificates-2024.11.26-haa95532_0.conda
  hash:
    md5: 1eab4288c83f2a4d26692974bc532220
    sha256: c8391c70fcca582537633e4915b670caadb343d060510310a9d0edc6f42984f3
  category: main
  optional: false
- name: cachecontrol
  version: 0.14.0
  manager: conda
  platform: win-64
  dependencies:
    msgpack-python: '>=0.5.2,<2.0.0'
    python: '>=3.12,<3.13.0a0'
    requests: '>=2.16.0'
  url: https://repo.anaconda.com/pkgs/main/win-64/cachecontrol-0.14.0-py312haa95532_1.conda
  hash:
    md5: 6fc3ee0bba130fa39a5ed28cfea23228
    sha256: 00f394fc9d5e32fba0ab5bd51354114b203c859c3e90ef66f05d72e0f0df07cd
  category: main
  optional: false
- name: cachecontrol-with-filecache
  version: 0.14.0
  manager: conda
  platform: win-64
  dependencies:
    cachecontrol: 0.14.0
    filelock: '>=3.8.0'
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/cachecontrol-with-filecache-0.14.0-py312haa95532_1.conda
  hash:
    md5: 1b63f5b4d1d9ab55e355dcb34b509ca0
    sha256: 694aae51f8a95c93cf058e89560da7c8d76170d50e2410f326c6e08aa17eb2ac
  category: main
  optional: false
- name: cachy
  version: 0.3.0
  manager: conda
  platform: win-64
  dependencies:
    python: ''
  url: https://repo.anaconda.com/pkgs/main/noarch/cachy-0.3.0-pyhd3eb1b0_0.conda
  hash:
    md5: fcb19b85ad100b509f744e339c50871e
    sha256: addf7c8cd9be45985f6925783e203d8cd503bcca6694884a9a303a91dac7c103
  category: main
  optional: false
- name: certifi
  version: 2024.8.30
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/certifi-2024.8.30-py312haa95532_0.conda
  hash:
    md5: 46d3270437bbd000f59be32b1a0ccdce
    sha256: 2ed9ec29459a8fd6d009091bb09874802cdbe8d58319c648261ec0b126314fd7
  category: main
  optional: false
- name: cffi
  version: 1.17.1
  manager: conda
  platform: win-64
  dependencies:
    pycparser: ''
    python: '>=3.12,<3.13.0a0'
    vc: '>=14.2,<15.0a0'
    vs2015_runtime: '>=14.29.30133,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/cffi-1.17.1-py312h827c3e9_0.conda
  hash:
    md5: fcef370fa986fc1ee293f82af8323339
    sha256: fb5f45d3ee502e2e6c55b10e0bbe0371ce1e4b50774218c7496f1e7281d4af13
  category: main
  optional: false
- name: charset-normalizer
  version: 3.3.2
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.7'
  url: https://repo.anaconda.com/pkgs/main/noarch/charset-normalizer-3.3.2-pyhd3eb1b0_0.conda
  hash:
    md5: c6fea3691e85cf7f568b0618ec29fc4f
    sha256: 1cdc690b822b7518ab3b73c06115f6b95037ff111378e6d2e6508c4602df558e
  category: main
  optional: false
- name: click
  version: 8.1.7
  manager: conda
  platform: win-64
  dependencies:
    colorama: ''
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/click-8.1.7-py312haa95532_0.conda
  hash:
    md5: 12daed12ef284a081d3f0e0b580a3b5b
    sha256: 730e19580877cca43893c1a48e66e1cab497a2f425ebf6896a1ff23b712d485c
  category: main
  optional: false
- name: click-default-group
  version: 1.2.2
  manager: conda
  platform: win-64
  dependencies:
    click: ''
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/click-default-group-1.2.2-py312haa95532_0.conda
  hash:
    md5: 7b74b1031a6e24010e45ac0a6a24b14f
    sha256: 478ff1b5e5e4c916d5c1f66eeffa929b98a28a0a209d1bd4717d2940dee4a21d
  category: main
  optional: false
- name: clikit
  version: 0.6.2
  manager: conda
  platform: win-64
  dependencies:
    crashtest: '>=0.3.0,<0.4.0'
    pastel: '>=0.2.0,<0.3.0'
    pylev: '>=1.3,<2.0'
    python: ''
  url: https://repo.anaconda.com/pkgs/main/noarch/clikit-0.6.2-py_0.conda
  hash:
    md5: 281a572ac24a9d39f42d4f0e14cfeb8e
    sha256: c6a9a3255089df43a32f7607752d4902cb59dfa089d46e0f7f96e11ad8a8cfb1
  category: main
  optional: false
- name: colorama
  version: 0.4.6
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/colorama-0.4.6-py312haa95532_0.conda
  hash:
    md5: 161baa1308cf84c4817497287afb709a
    sha256: 900b588c478ba29ac20fde86fb9a4930088306a4f0d337a8d217478bfa722df3
  category: main
  optional: false
- name: conda-lock
  version: 2.5.6
  manager: conda
  platform: win-64
  dependencies:
    cachecontrol-with-filecache: '>=0.12.9'
    cachy: '>=0.3.0'
    click: '>=8.0'
    click-default-group: ''
    clikit: '>=0.6.2'
    crashtest: '>=0.3.0'
    ensureconda: '>=1.4.4'
    gitpython: '>=3.1.30'
    html5lib: '>=1.0'
    jinja2: ''
    keyring: '>=21.2.0'
    packaging: '>=20.4'
    pkginfo: '>=1.4'
    pydantic: '>=1.10'
    python: '>=3.12,<3.13.0a0'
    pyyaml: '>=5.1'
    requests: '>=2.18'
    ruamel.yaml: ''
    tomlkit: '>=0.7.0'
    toolz: '>=0.12.0,<1.0.0'
    typing_extensions: ''
    urllib3: '>=1.26.5,<2.0'
    virtualenv: '>=20.0.26'
  url: https://repo.anaconda.com/pkgs/main/win-64/conda-lock-2.5.6-py312haa95532_0.conda
  hash:
    md5: 532ae540327907c5a018884f0c5a3a9f
    sha256: f0ce80064d25f3b63ed6605a2bd4d30cbe858fb6c4d18490a85020f059d29fff
  category: main
  optional: false
- name: crashtest
  version: 0.3.1
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.6,<4.0'
  url: https://repo.anaconda.com/pkgs/main/noarch/crashtest-0.3.1-pyhd3eb1b0_1.conda
  hash:
    md5: cc0df6f8162939216c20d9c2772f4b68
    sha256: 0701892f430d99a40b9e9efb43db88800e49a4284e13cc03361b019634464131
  category: main
  optional: false
- name: cryptography
  version: 43.0.3
  manager: conda
  platform: win-64
  dependencies:
    cffi: '>=1.12'
    openssl: '>=3.0.15,<4.0a0'
    python: '>=3.12,<3.13.0a0'
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/cryptography-43.0.3-py312hbd6ee87_1.conda
  hash:
    md5: aabb66bdd241d82f159f1d229789b249
    sha256: 96024198b5a02e6071f5a3ffa8fd960059fe0d9da8ef3c86a9c0f6e9a231c74c
  category: main
  optional: false
- name: distlib
  version: 0.3.8
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/distlib-0.3.8-py312haa95532_0.conda
  hash:
    md5: 4eb64552149cbe8e9f529c98c50acc4c
    sha256: 24f3659cfbf4c393680ae2141ae43206ee0b4e0656c68cf209bbf23390056a14
  category: main
  optional: false
- name: ensureconda
  version: 1.4.4
  manager: conda
  platform: win-64
  dependencies:
    appdirs: ''
    click: '>=5.1'
    filelock: ''
    packaging: ''
    python: '>=3.12,<3.13.0a0'
    requests: '>=2'
  url: https://repo.anaconda.com/pkgs/main/win-64/ensureconda-1.4.4-py312haa95532_1.conda
  hash:
    md5: 33339efc00bcce64961221bfcfbb09cf
    sha256: d8e20d3c8afb36233647aff4899435d1af493d25a963d01d32bee55d8a6c56b4
  category: main
  optional: false
- name: expat
  version: 2.6.4
  manager: conda
  platform: win-64
  dependencies:
    vc: '>=14.2,<15.0a0'
    vs2015_runtime: '>=14.29.30133,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/expat-2.6.4-h8ddb27b_0.conda
  hash:
    md5: 4051c708005296ddd0c080d38f4203e1
    sha256: b7462a72d6c5afc096530d38e19d356d48a5ec967aa01f11d53221991256943c
  category: main
  optional: false
- name: filelock
  version: 3.13.1
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/filelock-3.13.1-py312haa95532_0.conda
  hash:
    md5: 4ed2666b1d1ba1dc53229ecac885c134
    sha256: c75b8ecc61b4055a6464ac46f56aff9140e2de4584810779f1bb3e82d82b51d9
  category: main
  optional: false
- name: gitdb
  version: 4.0.7
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.4'
    smmap: '>=3.0.1'
  url: https://repo.anaconda.com/pkgs/main/noarch/gitdb-4.0.7-pyhd3eb1b0_0.conda
  hash:
    md5: bdd15a7149734880c003d98110c56b5b
    sha256: 90dc1cfd783c82154be805118670775b0f5950d47faadfa8321a4f1e0ff7050a
  category: main
  optional: false
- name: gitpython
  version: 3.1.43
  manager: conda
  platform: win-64
  dependencies:
    gitdb: '>=4.0.1,<5'
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/gitpython-3.1.43-py312haa95532_0.conda
  hash:
    md5: 20392fbd045721753466d09623089463
    sha256: 612c8929ee1fbf5d83d4237a4dd56f33cac8a427c3b6e8021a28471a627e167c
  category: main
  optional: false
- name: html5lib
  version: '1.1'
  manager: conda
  platform: win-64
  dependencies:
    python: ''
    six: '>=1.9'
    webencodings: ''
  url: https://repo.anaconda.com/pkgs/main/noarch/html5lib-1.1-pyhd3eb1b0_0.conda
  hash:
    md5: 24c4f675dfc77f9d1ae6cd3c33731c3c
    sha256: d811c70875dea2d04f909518740f5a8848afa53e9f947679e977f769f30d88ad
  category: main
  optional: false
- name: idna
  version: '3.7'
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/idna-3.7-py312haa95532_0.conda
  hash:
    md5: 114efaad1ed61e1d00e3bbad0aac7d86
    sha256: f243df5e1c5b0b2448830fe9e0a1be4d5004d7f98abc5d839d184c61441583c1
  category: main
  optional: false
- name: jaraco.classes
  version: 3.2.1
  manager: conda
  platform: win-64
  dependencies:
    more-itertools: ''
    python: '>=3.6'
  url: https://repo.anaconda.com/pkgs/main/noarch/jaraco.classes-3.2.1-pyhd3eb1b0_0.conda
  hash:
    md5: 7f47c66b55e92b2724174847703df72f
    sha256: 0743b8780601d24dfc740dad0865d0aeb3046eff46fe8c447530359070301648
  category: main
  optional: false
- name: jinja2
  version: 3.1.4
  manager: conda
  platform: win-64
  dependencies:
    markupsafe: '>=2.0'
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/jinja2-3.1.4-py312haa95532_1.conda
  hash:
    md5: 1b31978728d3f54f3f6d97de66369988
    sha256: 7231ddf4cdb0a4d02498e4000c032b6263024187bca8a4d84d3877120eddb150
  category: main
  optional: false
- name: keyring
  version: 24.3.1
  manager: conda
  platform: win-64
  dependencies:
    jaraco.classes: ''
    python: '>=3.12,<3.13.0a0'
    pywin32-ctypes: '>=0.2.2'
  url: https://repo.anaconda.com/pkgs/main/win-64/keyring-24.3.1-py312haa95532_0.conda
  hash:
    md5: 5e9a1a2d4767209e1e5ec933bcdb01bd
    sha256: fabe54726f7e5fe862253c66e1adab323a973e101479d5faf24b23ada41ff669
  category: main
  optional: false
- name: libffi
  version: 3.4.4
  manager: conda
  platform: win-64
  dependencies:
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/libffi-3.4.4-hd77b12b_1.conda
  hash:
    md5: 9807b377e11739ae3e920e10e607e460
    sha256: 43a437fde4c064b2f1be2342a7bc6edccbc13da6a4fb8a44d87e4e6e34c54b63
  category: main
  optional: false
- name: markupsafe
  version: 2.1.3
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/markupsafe-2.1.3-py312h2bbff1b_0.conda
  hash:
    md5: 5c006436f8dfef51f9fa40426d93fa7a
    sha256: 0f470721805497d1918738bdf1426bca3fb3629e1520e04426a7435e02f6162a
  category: main
  optional: false
- name: more-itertools
  version: 10.3.0
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/more-itertools-10.3.0-py312haa95532_0.conda
  hash:
    md5: 306d39b9d09b1bd8eb02d21d35897594
    sha256: 367d7ae85ca66df3c34498c4aecaa142bbbe02b242a55b5223634cd47e6821a1
  category: main
  optional: false
- name: msgpack-python
  version: 1.0.3
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/msgpack-python-1.0.3-py312h59b6b97_0.conda
  hash:
    md5: 53c1f9b0600f36d86e6cdf25195881e8
    sha256: 4346bbeaec287cb502dd1ae95fa1fbf9af7e4943df4b2c132605214f16c4d809
  category: main
  optional: false
- name: openssl
  version: 3.0.15
  manager: conda
  platform: win-64
  dependencies:
    ca-certificates: ''
    vc: '>=14.2,<15.0a0'
    vs2015_runtime: '>=14.29.30133,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/openssl-3.0.15-h827c3e9_0.conda
  hash:
    md5: 7781aef6d9439002465f12df75789757
    sha256: f66ac4602ff5f9e46d7949cdde2bfd0db88702cd0b885c70a70891c348c0c1df
  category: main
  optional: false
- name: packaging
  version: '24.1'
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/packaging-24.1-py312haa95532_0.conda
  hash:
    md5: b5ecc0a9c2cc5a1e44f9dd4598c4df50
    sha256: 2768e62562cdc3b131047e6c224757d593f543c1e13233c1cddf16f65bf035c9
  category: main
  optional: false
- name: pastel
  version: 0.2.1
  manager: conda
  platform: win-64
  dependencies:
    python: ''
  url: https://repo.anaconda.com/pkgs/main/noarch/pastel-0.2.1-py_0.conda
  hash:
    md5: 81a0d5c930710445569d9a2f5137d6a2
    sha256: 670d1a67c20bba49d2e3983300c05d9ab095473cf95473147afa4b88703716cb
  category: main
  optional: false
- name: pkginfo
  version: 1.11.2
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/pkginfo-1.11.2-py312haa95532_0.conda
  hash:
    md5: 8f98d2e0c999c1fc08486f254fccf0d8
    sha256: edeb6b5e9cf8f4b37c855f3966d59f1ec495d84f9cfc0fb600d5981c9f8e42ce
  category: main
  optional: false
- name: platformdirs
  version: 3.10.0
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/platformdirs-3.10.0-py312haa95532_0.conda
  hash:
    md5: 21714abfa08e1d6e0435b9768ead622a
    sha256: 1b68c148b85b0274e58f933797c22e706aecbac2ac02df7e6d32b0db187d8b8d
  category: main
  optional: false
- name: pycparser
  version: '2.21'
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.6'
  url: https://repo.anaconda.com/pkgs/main/noarch/pycparser-2.21-pyhd3eb1b0_0.conda
  hash:
    md5: 135a72ff2a31150a3a3ff0b1edd41ca9
    sha256: 4405b5aeff26863972c82e8b54d09f88cd084f70e01e4343107b2676ffbeab57
  category: main
  optional: false
- name: pydantic
  version: 2.8.2
  manager: conda
  platform: win-64
  dependencies:
    annotated-types: '>=0.4.0'
    pydantic-core: 2.20.1
    python: '>=3.12,<3.13.0a0'
    typing-extensions: '>=4.6.1'
  url: https://repo.anaconda.com/pkgs/main/win-64/pydantic-2.8.2-py312haa95532_0.conda
  hash:
    md5: 846d49de651d073ee775e2448190149f
    sha256: 8f67870b15d6661a239f9fc7b37706d621a1aa076102c401234410d216ea2c0c
  category: main
  optional: false
- name: pydantic-core
  version: 2.20.1
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
    typing-extensions: '>=4.6.0,!=4.7.0'
    vc: '>=14.2,<15.0a0'
    vs2015_runtime: '>=14.29.30133,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/pydantic-core-2.20.1-py312hefb1915_0.conda
  hash:
    md5: 1c05b65e815930e0ddf3a8f2896adcae
    sha256: 899240c4b0905de54dbd918d9bcbef0c301bf4efdcdb36b61a6ce6388288334d
  category: main
  optional: false
- name: pylev
  version: 1.3.0
  manager: conda
  platform: win-64
  dependencies:
    python: ''
  url: https://repo.anaconda.com/pkgs/main/noarch/pylev-1.3.0-py_0.conda
  hash:
    md5: 8753b52aad70b2ed2ebaa6031853c816
    sha256: 51c480043149445a01025377ef9deb2ef47d982ad469b821af31bbd2a094988c
  category: main
  optional: false
- name: pyopenssl
  version: 24.2.1
  manager: conda
  platform: win-64
  dependencies:
    cryptography: '>=41.0.5,<44'
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/pyopenssl-24.2.1-py312haa95532_0.conda
  hash:
    md5: cab227e3e0205f956b7d13ebc3118af6
    sha256: e028a134703ddcad378babf8c36e8c5c0e311075a7f2afa9a29447748d129182
  category: main
  optional: false
- name: pysocks
  version: 1.7.1
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
    win_inet_pton: ''
  url: https://repo.anaconda.com/pkgs/main/win-64/pysocks-1.7.1-py312haa95532_0.conda
  hash:
    md5: e5f7b8790925322357ee89cc7ae5bb1c
    sha256: 0f716b38b3f5250ec9d54b64d7f9fef08aac3ee83cd9f8977a043e3c807cee15
  category: main
  optional: false
- name: python
  version: 3.12.8
  manager: conda
  platform: win-64
  dependencies:
    bzip2: '>=1.0.8,<2.0a0'
    expat: '>=2.6.3,<3.0a0'
    libffi: '>=3.4,<4.0a0'
    openssl: '>=3.0.15,<4.0a0'
    sqlite: '>=3.45.3,<4.0a0'
    tk: '>=8.6.14,<8.7.0a0'
    tzdata: ''
    vc: '>=14.2,<15.0a0'
    vs2015_runtime: '>=14.29.30133,<15.0a0'
    xz: '>=5.4.6,<6.0a0'
    zlib: '>=1.2.13,<1.3.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/python-3.12.8-h14ffc60_0.conda
  hash:
    md5: 3cd26c4417640ae8134b4f4aa9499d32
    sha256: 5720e8e2903ece54c9e3d3e623950c22f6191ca39262eff85bcdc2f46d1f043d
  category: main
  optional: false
- name: pywin32-ctypes
  version: 0.2.2
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/pywin32-ctypes-0.2.2-py312haa95532_0.conda
  hash:
    md5: 22f037bf4d3f42e99bfdf345bb407e51
    sha256: 1147922bc8081747ddbd0ee57e3a376696dcef5b6d5d042e5f382235a78dfcf1
  category: main
  optional: false
- name: pyyaml
  version: 6.0.2
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
    vc: '>=14.2,<15.0a0'
    vs2015_runtime: '>=14.29.30133,<15.0a0'
    yaml: '>=0.2.5,<0.3.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/pyyaml-6.0.2-py312h827c3e9_0.conda
  hash:
    md5: d3191c546f79d40bc826b9ea36e24f0b
    sha256: 01f597f7ecdfe5bb490770c6f5d382219c8bce7c86ae1e163ce8bb6bb7eb488b
  category: main
  optional: false
- name: requests
  version: 2.32.3
  manager: conda
  platform: win-64
  dependencies:
    certifi: '>=2017.4.17'
    charset-normalizer: '>=2,<4'
    idna: '>=2.5,<4'
    python: '>=3.12,<3.13.0a0'
    urllib3: '>=1.21.1,<3'
  url: https://repo.anaconda.com/pkgs/main/win-64/requests-2.32.3-py312haa95532_1.conda
  hash:
    md5: 578fbe35c5cd97907460f54a5da5e527
    sha256: 9f50ca6be0e4f0df04f4e526f0f01a639a8f6ebd83ffa966b6cd9eca0da0495b
  category: main
  optional: false
- name: ruamel.yaml
  version: 0.18.6
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
    ruamel.yaml.clib: '>=0.2.7'
    vc: '>=14.2,<15.0a0'
    vs2015_runtime: '>=14.29.30133,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/ruamel.yaml-0.18.6-py312h827c3e9_0.conda
  hash:
    md5: 023be647f9a82f66db5fa1388e67e1fb
    sha256: 0c1a23825261da3f51d663f0b0ec9b16d4ccc7ef73eff673a8d74117cc4d1c10
  category: main
  optional: false
- name: ruamel.yaml.clib
  version: 0.2.8
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
    vc: '>=14.2,<15.0a0'
    vs2015_runtime: '>=14.29.30133,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/ruamel.yaml.clib-0.2.8-py312h827c3e9_0.conda
  hash:
    md5: a4c0471292bd589a1d8da0e5adbd45e4
    sha256: 149af7a51228b5333f9f4ccc5f0b9bb1c19fa8e623fa1456d4a7ee1c25ae8827
  category: main
  optional: false
- name: six
  version: 1.16.0
  manager: conda
  platform: win-64
  dependencies:
    python: ''
  url: https://repo.anaconda.com/pkgs/main/noarch/six-1.16.0-pyhd3eb1b0_1.conda
  hash:
    md5: 34586824d411d36af2fa40e799c172d0
    sha256: 71c97b4ddc3d19ed41bfa1a2d40f620f96b4d46f097dc48ab115b36640f7df0a
  category: main
  optional: false
- name: smmap
  version: 4.0.0
  manager: conda
  platform: win-64
  dependencies:
    python: ''
  url: https://repo.anaconda.com/pkgs/main/noarch/smmap-4.0.0-pyhd3eb1b0_0.conda
  hash:
    md5: ea22ec22100b09799aa81f3e3ef9fa87
    sha256: acbc91bc422b20d0476fdf8b0f8c2481c8cfd1d9bd1490da98a25d36d93ce0af
  category: main
  optional: false
- name: sqlite
  version: 3.45.3
  manager: conda
  platform: win-64
  dependencies:
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/sqlite-3.45.3-h2bbff1b_0.conda
  hash:
    md5: c5b3b929349655302bf811c45571da6d
    sha256: bb25d778d309491d947d3758ec79652aa637c1808041114b1bd45e8bdd7bd776
  category: main
  optional: false
- name: tk
  version: 8.6.14
  manager: conda
  platform: win-64
  dependencies:
    vc: '>=14.2,<15.0a0'
    vs2015_runtime: '>=14.27.29016,<15.0a0'
    zlib: '>=1.2.13,<1.3.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/tk-8.6.14-h0416ee5_0.conda
  hash:
    md5: da75707c571825eb2ad0eb806710b16b
    sha256: 80136bf123ac4e5277b4ccbe8bd3d9a6535842ad269741bc2e019babcd71b5d6
  category: main
  optional: false
- name: tomlkit
  version: 0.13.2
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/tomlkit-0.13.2-py312haa95532_0.conda
  hash:
    md5: 9e89ec07fd7050ab4cb57b441149f593
    sha256: 2a1717be36cf09b8aa30827d2d78d4245996522545b6a08e49213f00dcec4f3e
  category: main
  optional: false
- name: toolz
  version: 0.12.0
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/toolz-0.12.0-py312haa95532_0.conda
  hash:
    md5: fbdb7028a9962ba589efe2f45e12dfc7
    sha256: ff22131e384ad8132f02a9e572ad82ad843766516a9ce2fa85d27952f8a9fef1
  category: main
  optional: false
- name: typing-extensions
  version: 4.11.0
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
    typing_extensions: 4.11.0
  url: https://repo.anaconda.com/pkgs/main/win-64/typing-extensions-4.11.0-py312haa95532_0.conda
  hash:
    md5: 2918633056b06d8a122e86f79e89ddd9
    sha256: d4ebefbf617a41d40c0bbb1321a32f01b7ae515053d5dba58652d14ed57909d1
  category: main
  optional: false
- name: typing_extensions
  version: 4.11.0
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/typing_extensions-4.11.0-py312haa95532_0.conda
  hash:
    md5: 692d3960a098c8f463a1ccbf02cae9d6
    sha256: bc56baaae7eb8ac1adbed32b83135da42568cd81cb92a96df5aca88cabaf0cbe
  category: main
  optional: false
- name: tzdata
  version: 2024b
  manager: conda
  platform: win-64
  dependencies: {}
  url: https://repo.anaconda.com/pkgs/main/noarch/tzdata-2024b-h04d1e81_0.conda
  hash:
    md5: 9be694715c6a65f9631bb1b242125e9d
    sha256: 9fdd287b55be4c475789a69d3b94cdb73f756583a6d7306da1706e43eee573da
  category: main
  optional: false
- name: urllib3
  version: 1.26.19
  manager: conda
  platform: win-64
  dependencies:
    brotli-python: '>=1.0.9'
    certifi: ''
    cryptography: '>=1.3.4'
    idna: '>=2.0.0'
    pyopenssl: '>=0.14'
    pysocks: '>=1.5.6,<2.0,!=1.5.7'
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/urllib3-1.26.19-py312haa95532_0.conda
  hash:
    md5: eb7ed6516804b6c0105a8a181d7b7d42
    sha256: 6522e77c735088c8bf3c857d6eb2c266eee30e9453208ca2a75eb25539ccae1a
  category: main
  optional: false
- name: vc
  version: '14.40'
  manager: conda
  platform: win-64
  dependencies:
    vs2015_runtime: '>=14.42.34433'
  url: https://repo.anaconda.com/pkgs/main/win-64/vc-14.40-haa95532_2.conda
  hash:
    md5: d0a53bd27696fe718c3662812675e473
    sha256: 272096a197078b46349da491041c739a91d66db328b99f8bb41f4aeef6223034
  category: main
  optional: false
- name: virtualenv
  version: 20.28.0
  manager: conda
  platform: win-64
  dependencies:
    distlib: '>=0.3.7,<1'
    filelock: '>=3.12.2,<4'
    platformdirs: '>=3.9.1,<5'
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/virtualenv-20.28.0-py312haa95532_0.conda
  hash:
    md5: ee63ce9947310b4bc2b3f2582060b5e8
    sha256: 211720d6aa2a6625eac0fbe12fcba258e58a1342dee9587ccd16c3443e79dcfd
  category: main
  optional: false
- name: vs2015_runtime
  version: 14.42.34433
  manager: conda
  platform: win-64
  dependencies: {}
  url: https://repo.anaconda.com/pkgs/main/win-64/vs2015_runtime-14.42.34433-h9531ae6_2.conda
  hash:
    md5: 4b7a61e3eff596a8a90aca817be3cf4f
    sha256: 110965aa97d2f5f3e0f114fdb07d88ac56ad77524d80683e53259c38532b54a7
  category: main
  optional: false
- name: webencodings
  version: 0.5.1
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/webencodings-0.5.1-py312haa95532_2.conda
  hash:
    md5: 0adab6426342ac105941b97f0fd9a55b
    sha256: 462af03ee746c28dabd5b1bb57f942320190a8f514c81514b6cd0574a6aa095f
  category: main
  optional: false
- name: win_inet_pton
  version: 1.1.0
  manager: conda
  platform: win-64
  dependencies:
    python: '>=3.12,<3.13.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/win_inet_pton-1.1.0-py312haa95532_0.conda
  hash:
    md5: 3ba2805fbd7809df9a5628c068b9d873
    sha256: 5d0bd934cde9f309a783339f0ef4f7c55b06dc53653c569b107cd8b850f15562
  category: main
  optional: false
- name: xz
  version: 5.4.6
  manager: conda
  platform: win-64
  dependencies:
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/xz-5.4.6-h8cc25b3_1.conda
  hash:
    md5: cd89b06b0e59712386f00a41fb2dec32
    sha256: c2ae3cfa590f71bfdd40426fe6e21967543187ecee41d74d6b36be95106c4583
  category: main
  optional: false
- name: yaml
  version: 0.2.5
  manager: conda
  platform: win-64
  dependencies:
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/yaml-0.2.5-he774522_0.conda
  hash:
    md5: 959a63017c520ef9d345bd82ab344e3e
    sha256: e197edaa90488491bd6e0eaa51329d2d93242c6acd7d0aa7b0351d4b24412368
  category: main
  optional: false
- name: zlib
  version: 1.2.13
  manager: conda
  platform: win-64
  dependencies:
    vc: '>=14.1,<15.0a0'
    vs2015_runtime: '>=14.16.27012,<15.0a0'
  url: https://repo.anaconda.com/pkgs/main/win-64/zlib-1.2.13-h8cc25b3_1.conda
  hash:
    md5: 1f7ea85632611b25599e4cddf5b51d7d
    sha256: 48eef468ca392090e6fe57c3ba54e3a7dc1412f9c417c248575d0717e9a5ed3d
  category: main
  optional: false
@maresb
Copy link
Contributor

maresb commented Dec 17, 2024

Hi @thisrod, thanks for the detailed bug report!

One reason for the problems you're experiencing is the mixing of conda-forge and defaults channel. (Any time you see either defaults/ or pkgs/main, that indicates a package from the defaults channel.) Both conda-forge and defaults are intended as complete ecosystems, and mixing them usually leads to subtle incompatibilities. There are two recommended ways forward, depending on the channel you choose:

  1. Use only defaults (the Anaconda-maintained channel) by omitting --channel=conda-forge from your conda-lock install command.
  2. Use only conda-forge (the community channel) by always specifying -c conda-forge. Depending on your configuration, you may also need to specify -c nodefaults, and that will guarantee that the defaults channel is replaced instead of concatenated with conda-forge.

I don't have a Windows machine, so I am unable to reproduce your procedure that involves installing. Could you please check if using one or the other leads to expected behavior?

@thisrod
Copy link
Author

thisrod commented Dec 17, 2024

Hi @maresb . Thanks for the quick response!

I really like the way conda-forge separates the concerns of solving dependencies and installing packages.

The defaults channel fails as follows:

(base) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda create -n Bootstrap python
Channels:
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap

  added / updated specs:
    - python


The following NEW packages will be INSTALLED:

  bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
  ca-certificates    pkgs/main/win-64::ca-certificates-2024.11.26-haa95532_0
  expat              pkgs/main/win-64::expat-2.6.4-h8ddb27b_0
  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
  libmpdec           pkgs/main/win-64::libmpdec-4.0.0-h827c3e9_0
  openssl            pkgs/main/win-64::openssl-3.0.15-h827c3e9_0
  pip                pkgs/main/win-64::pip-24.2-py313haa95532_0
  python             pkgs/main/win-64::python-3.13.1-hadb2040_100_cp313
  python_abi         pkgs/main/win-64::python_abi-3.13-0_cp313
  setuptools         pkgs/main/win-64::setuptools-75.1.0-py313haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.45.3-h2bbff1b_0
  tk                 pkgs/main/win-64::tk-8.6.14-h0416ee5_0
  tzdata             pkgs/main/noarch::tzdata-2024b-h04d1e81_0
  vc                 pkgs/main/win-64::vc-14.40-haa95532_2
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.42.34433-h9531ae6_2
  wheel              pkgs/main/win-64::wheel-0.44.0-py313haa95532_0
  xz                 pkgs/main/win-64::xz-5.4.6-h8cc25b3_1
  zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1


Proceed ([y]/n)?


Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate Bootstrap
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda activate Bootstrap
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda install conda-lock
Channels:
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: - warning  libmamba Added empty dependency for problem type SOLVER_RULE_UPDATE
failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package conda-lock-1.4.0-py310haa95532_0 requires python >=3.10,<3.11.0a0, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ conda-lock is installable with the potential options
│  ├─ conda-lock [1.4.0|2.5.6] would require
│  │  └─ python >=3.10,<3.11.0a0 , which can be installed;
│  ├─ conda-lock [1.4.0|2.5.6] would require
│  │  └─ python >=3.11,<3.12.0a0 , which can be installed;
│  ├─ conda-lock 1.4.0 would require
│  │  └─ python >=3.7,<3.8.0a0 , which can be installed;
│  ├─ conda-lock [1.4.0|2.5.6] would require
│  │  └─ python >=3.8,<3.9.0a0 , which can be installed;
│  ├─ conda-lock [1.4.0|2.5.6] would require
│  │  └─ python >=3.9,<3.10.0a0 , which can be installed;
│  └─ conda-lock 2.5.6 would require
│     └─ python >=3.12,<3.13.0a0 , which can be installed;
└─ pin-1 is not installable because it requires
   └─ python 3.13.* , which conflicts with any installable versions previously reported.

The conda-forge channel fails in a lot of different ways. Here's what I did. I'm unsure exactly which -c options to use on which commands.

(base) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda create -n Bootstrap -c conda-forge -c nodefaults python
Channels:
 - conda-forge
 - nodefaults
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap

  added / updated specs:
    - python


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    bzip2-1.0.8                |       h2466b09_7          54 KB  conda-forge
    libexpat-2.6.4             |       he0c23c2_0         136 KB  conda-forge
    libffi-3.4.2               |       h8ffe710_5          41 KB  conda-forge
    liblzma-5.6.3              |       h2466b09_1         102 KB  conda-forge
    libmpdec-4.0.0             |       h2466b09_0          87 KB  conda-forge
    libsqlite-3.47.2           |       h67fdade_0         870 KB  conda-forge
    libzlib-1.3.1              |       h2466b09_2          54 KB  conda-forge
    pip-24.3.1                 |     pyh145f28c_2         1.2 MB  conda-forge
    python-3.13.1              |h071d269_102_cp313        16.0 MB  conda-forge
    python_abi-3.13            |          5_cp313           7 KB  conda-forge
    tk-8.6.13                  |       h5226925_1         3.3 MB  conda-forge
    tzdata-2024b               |       hc8b5060_0         119 KB  conda-forge
    vc-14.3                    |      ha32ba9b_23          17 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        22.0 MB

The following NEW packages will be INSTALLED:

  bzip2              conda-forge/win-64::bzip2-1.0.8-h2466b09_7
  ca-certificates    conda-forge/win-64::ca-certificates-2024.12.14-h56e8100_0
  libexpat           conda-forge/win-64::libexpat-2.6.4-he0c23c2_0
  libffi             conda-forge/win-64::libffi-3.4.2-h8ffe710_5
  liblzma            conda-forge/win-64::liblzma-5.6.3-h2466b09_1
  libmpdec           conda-forge/win-64::libmpdec-4.0.0-h2466b09_0
  libsqlite          conda-forge/win-64::libsqlite-3.47.2-h67fdade_0
  libzlib            conda-forge/win-64::libzlib-1.3.1-h2466b09_2
  openssl            conda-forge/win-64::openssl-3.4.0-h2466b09_0
  pip                conda-forge/noarch::pip-24.3.1-pyh145f28c_2
  python             conda-forge/win-64::python-3.13.1-h071d269_102_cp313
  python_abi         conda-forge/win-64::python_abi-3.13-5_cp313
  tk                 conda-forge/win-64::tk-8.6.13-h5226925_1
  tzdata             conda-forge/noarch::tzdata-2024b-hc8b5060_0
  ucrt               conda-forge/win-64::ucrt-10.0.22621.0-h57928b3_1
  vc                 conda-forge/win-64::vc-14.3-ha32ba9b_23
  vc14_runtime       conda-forge/win-64::vc14_runtime-14.42.34433-he29a5d6_23
  vs2015_runtime     conda-forge/win-64::vs2015_runtime-14.42.34433-hdffcdeb_23


Proceed ([y]/n)?


Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate Bootstrap
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda activate Bootstrap
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda install -c conda-forge conda-lock
Channels:
 - conda-forge
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): /
CondaError: KeyboardInterrupt

(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda install -c conda-forge -c nodefaults conda-lock
Channels:
 - conda-forge
 - nodefaults
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap

  added / updated specs:
    - conda-lock


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    setuptools-75.6.0          |     pyhff2d567_1         756 KB  conda-forge
    ------------------------------------------------------------
                                           Total:         756 KB

The following NEW packages will be INSTALLED:

  annotated-types    conda-forge/noarch::annotated-types-0.7.0-pyhd8ed1ab_1
  appdirs            conda-forge/noarch::appdirs-1.4.4-pyhd8ed1ab_1
  backports          conda-forge/noarch::backports-1.0-pyhd8ed1ab_5
  backports.tarfile  conda-forge/noarch::backports.tarfile-1.2.0-pyhd8ed1ab_1
  brotli-python      conda-forge/win-64::brotli-python-1.1.0-py313h5813708_2
  cachecontrol       conda-forge/noarch::cachecontrol-0.14.1-pyha770c72_1
  cachecontrol-with~ conda-forge/noarch::cachecontrol-with-filecache-0.14.1-pyhd8ed1ab_1
  cachy              conda-forge/noarch::cachy-0.3.0-pyhd8ed1ab_1
  certifi            conda-forge/noarch::certifi-2024.12.14-pyhd8ed1ab_0
  charset-normalizer conda-forge/noarch::charset-normalizer-3.4.0-pyhd8ed1ab_1
  click              conda-forge/noarch::click-8.1.7-win_pyh7428d3b_1
  click-default-gro~ conda-forge/noarch::click-default-group-1.2.4-pyhd8ed1ab_1
  clikit             conda-forge/noarch::clikit-0.6.2-pyhd8ed1ab_2
  colorama           conda-forge/noarch::colorama-0.4.6-pyhd8ed1ab_1
  conda-lock         conda-forge/noarch::conda-lock-2.5.7-pyhd8ed1ab_0
  crashtest          conda-forge/noarch::crashtest-0.4.1-pyhd8ed1ab_1
  distlib            conda-forge/noarch::distlib-0.3.9-pyhd8ed1ab_1
  ensureconda        conda-forge/noarch::ensureconda-1.4.4-pyhd8ed1ab_0
  filelock           conda-forge/noarch::filelock-3.16.1-pyhd8ed1ab_1
  gitdb              conda-forge/noarch::gitdb-4.0.11-pyhd8ed1ab_1
  gitpython          conda-forge/noarch::gitpython-3.1.43-pyhff2d567_1
  html5lib           conda-forge/noarch::html5lib-1.1-pyhd8ed1ab_2
  idna               conda-forge/noarch::idna-3.10-pyhd8ed1ab_1
  importlib-metadata conda-forge/noarch::importlib-metadata-8.5.0-pyha770c72_1
  importlib_resourc~ conda-forge/noarch::importlib_resources-6.4.5-pyhd8ed1ab_1
  jaraco.classes     conda-forge/noarch::jaraco.classes-3.4.0-pyhd8ed1ab_2
  jaraco.context     conda-forge/noarch::jaraco.context-6.0.1-pyhd8ed1ab_0
  jaraco.functools   conda-forge/noarch::jaraco.functools-4.1.0-pyhd8ed1ab_0
  jinja2             conda-forge/noarch::jinja2-3.1.4-pyhd8ed1ab_1
  keyring            conda-forge/noarch::keyring-25.5.0-pyh7428d3b_1
  markupsafe         conda-forge/win-64::markupsafe-3.0.2-py313hb4c8b1a_1
  more-itertools     conda-forge/noarch::more-itertools-10.5.0-pyhd8ed1ab_1
  msgpack-python     conda-forge/win-64::msgpack-python-1.1.0-py313h1ec8472_0
  packaging          conda-forge/noarch::packaging-24.2-pyhd8ed1ab_2
  pastel             conda-forge/noarch::pastel-0.2.1-pyhd8ed1ab_0
  pkginfo            conda-forge/noarch::pkginfo-1.12.0-pyhd8ed1ab_1
  platformdirs       conda-forge/noarch::platformdirs-4.3.6-pyhd8ed1ab_1
  pydantic           conda-forge/noarch::pydantic-2.10.3-pyh3cfb1c2_0
  pydantic-core      conda-forge/win-64::pydantic-core-2.27.1-py313hf3b5b86_0
  pylev              conda-forge/noarch::pylev-1.4.0-pyhd8ed1ab_0
  pysocks            conda-forge/noarch::pysocks-1.7.1-pyh09c184e_7
  pywin32-ctypes     conda-forge/win-64::pywin32-ctypes-0.2.3-py313hfa70ccb_1
  pyyaml             conda-forge/win-64::pyyaml-6.0.2-py313ha7868ed_1
  requests           conda-forge/noarch::requests-2.32.3-pyhd8ed1ab_1
  ruamel.yaml        conda-forge/win-64::ruamel.yaml-0.18.6-py313ha7868ed_1
  ruamel.yaml.clib   conda-forge/win-64::ruamel.yaml.clib-0.2.8-py313ha7868ed_1
  setuptools         conda-forge/noarch::setuptools-75.6.0-pyhff2d567_1
  six                conda-forge/noarch::six-1.17.0-pyhd8ed1ab_0
  smmap              conda-forge/noarch::smmap-5.0.0-pyhd8ed1ab_0
  tomli              conda-forge/noarch::tomli-2.2.1-pyhd8ed1ab_1
  tomlkit            conda-forge/noarch::tomlkit-0.13.2-pyha770c72_1
  toolz              conda-forge/noarch::toolz-0.12.1-pyhd8ed1ab_0
  typing-extensions  conda-forge/noarch::typing-extensions-4.12.2-hd8ed1ab_1
  typing_extensions  conda-forge/noarch::typing_extensions-4.12.2-pyha770c72_1
  urllib3            conda-forge/noarch::urllib3-1.26.19-pyhd8ed1ab_0
  virtualenv         conda-forge/noarch::virtualenv-20.28.0-pyhd8ed1ab_0
  webencodings       conda-forge/noarch::webencodings-0.5.1-pyhd8ed1ab_3
  win_inet_pton      conda-forge/noarch::win_inet_pton-1.1.0-pyh7428d3b_8
  yaml               conda-forge/win-64::yaml-0.2.5-h8ffe710_2
  zipp               conda-forge/noarch::zipp-3.21.0-pyhd8ed1ab_1


Proceed ([y]/n)?


Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda env export --from-history > environment.yml
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock -f .\environment.yml -c conda-forge -c nodefaults -p win-64
Traceback (most recent call last):
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Scripts\conda-lock-script.py", line 9, in <module>
    sys.exit(main())
             ~~~~^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 1403, in lock
    lock_func(
    ~~~~~~~~~^
        filename_template=filename_template, check_input_hash=check_input_hash
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 1111, in run_lock
    make_lock_files(
    ~~~~~~~~~~~~~~~^
        conda=_conda_exe,
        ^^^^^^^^^^^^^^^^^
    ...<15 lines>...
        strip_auth=strip_auth,
        ^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 337, in make_lock_files
    lock_spec = make_lock_spec(
        src_files=src_files,
    ...<3 lines>...
        required_categories=required_categories if filter_categories else None,
    )
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\src_parser\__init__.py", line 129, in make_lock_spec
    return LockSpecification(
        dependencies=dependencies,
    ...<4 lines>...
        allow_pypi_requests=aggregated_lock_spec.allow_pypi_requests,
    )
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\pydantic\main.py", line 214, in __init__
    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 1 validation error for LockSpecification
channels
  Value error, nodefaults channel is not allowed, ref #418 [type=value_error, input_value=[Channel(url='conda-forge...annel(url='nodefaults')], input_type=list]
    For further information visit https://errors.pydantic.dev/2.10/v/value_error
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock -f .\environment.yml -c conda-forge -p win-64
Locking dependencies for ['win-64']...
INFO:conda_lock.conda_solver:win-64 using specs ['python', 'conda-lock']
Traceback (most recent call last):
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Scripts\conda-lock-script.py", line 9, in <module>
    sys.exit(main())
             ~~~~^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 1403, in lock
    lock_func(
    ~~~~~~~~~^
        filename_template=filename_template, check_input_hash=check_input_hash
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 1111, in run_lock
    make_lock_files(
    ~~~~~~~~~~~~~~~^
        conda=_conda_exe,
        ^^^^^^^^^^^^^^^^^
    ...<15 lines>...
        strip_auth=strip_auth,
        ^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 417, in make_lock_files
    new_lock_content = lock_content_to_persist.merge(fresh_lock_content)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\lockfile\v2prelim\models.py", line 52, in merge
    self.metadata.channels == other.metadata.channels
AssertionError: channels must match: [Channel(url='defaults'), Channel(url='https://repo.anaconda.com/pkgs/main'), Channel(url='https://repo.anaconda.com/pkgs/r'), Channel(url='https://repo.anaconda.com/pkgs/msys2')] != [Channel(url='conda-forge')]
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda env export --from-history
name: Bootstrap
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - https://repo.anaconda.com/pkgs/msys2
dependencies:
  - python
  - conda-lock
prefix: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda env export -c conda-forge --from-history
name: Bootstrap
channels:
  - conda-forge
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - https://repo.anaconda.com/pkgs/msys2
dependencies:
  - python
  - conda-lock
prefix: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda env export -c conda-forge -c nodefaults --from-history
name: Bootstrap
channels:
  - conda-forge
  - nodefaults
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - https://repo.anaconda.com/pkgs/msys2
dependencies:
  - python
  - conda-lock
prefix: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda env export -c conda-forge -c nodefaults --from-history > environment.yml
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock -f .\environment.yml -c conda-forge -c nodefaults -p win-64
Traceback (most recent call last):
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Scripts\conda-lock-script.py", line 9, in <module>
    sys.exit(main())
             ~~~~^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 1403, in lock
    lock_func(
    ~~~~~~~~~^
        filename_template=filename_template, check_input_hash=check_input_hash
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 1111, in run_lock
    make_lock_files(
    ~~~~~~~~~~~~~~~^
        conda=_conda_exe,
        ^^^^^^^^^^^^^^^^^
    ...<15 lines>...
        strip_auth=strip_auth,
        ^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 337, in make_lock_files
    lock_spec = make_lock_spec(
        src_files=src_files,
    ...<3 lines>...
        required_categories=required_categories if filter_categories else None,
    )
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\src_parser\__init__.py", line 129, in make_lock_spec
    return LockSpecification(
        dependencies=dependencies,
    ...<4 lines>...
        allow_pypi_requests=aggregated_lock_spec.allow_pypi_requests,
    )
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\pydantic\main.py", line 214, in __init__
    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 1 validation error for LockSpecification
channels
  Value error, nodefaults channel is not allowed, ref #418 [type=value_error, input_value=[Channel(url='conda-forge...annel(url='nodefaults')], input_type=list]
    For further information visit https://errors.pydantic.dev/2.10/v/value_error
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock -f .\environment.yml -c conda-forge -p win-64
Locking dependencies for ['win-64']...
INFO:conda_lock.conda_solver:win-64 using specs ['python', 'conda-lock']
Traceback (most recent call last):
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Scripts\conda-lock-script.py", line 9, in <module>
    sys.exit(main())
             ~~~~^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\click\decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 1403, in lock
    lock_func(
    ~~~~~~~~~^
        filename_template=filename_template, check_input_hash=check_input_hash
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 1111, in run_lock
    make_lock_files(
    ~~~~~~~~~~~~~~~^
        conda=_conda_exe,
        ^^^^^^^^^^^^^^^^^
    ...<15 lines>...
        strip_auth=strip_auth,
        ^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\conda_lock.py", line 417, in make_lock_files
    new_lock_content = lock_content_to_persist.merge(fresh_lock_content)
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\Bootstrap\Lib\site-packages\conda_lock\lockfile\v2prelim\models.py", line 52, in merge
    self.metadata.channels == other.metadata.channels
AssertionError: channels must match: [Channel(url='defaults'), Channel(url='https://repo.anaconda.com/pkgs/main'), Channel(url='https://repo.anaconda.com/pkgs/r'), Channel(url='https://repo.anaconda.com/pkgs/msys2')] != [Channel(url='conda-forge')]
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock -f .\environment.yml -p win-64
Locking dependencies for ['win-64']...
INFO:conda_lock.conda_solver:win-64 using specs ['python', 'conda-lock']
 - Install lock using: conda-lock install --name YOURENV conda-lock.yml
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock install --name SelfHost -c conda-forge -c nodefaults .\conda-lock.yml
Usage: conda-lock install [OPTIONS] [LOCK_FILE]
Try 'conda-lock install --help' for help.

Error: No such option: -c
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock install --name SelfHost .\conda-lock.yml
INFO:root:Downloading and Extracting Packages: ...working... done
INFO:root:
INFO:root:## Package Plan ##
INFO:root:
INFO:root:  environment location: C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost
INFO:root:
INFO:root:  added / updated specs:
INFO:root:    - defaults/noarch::appdirs==1.4.4=pyhd3eb1b0_0[md5=5673d98d06171cb6eed03a6736845c4d]
INFO:root:    - defaults/noarch::cachy==0.3.0=pyhd3eb1b0_0[md5=fcb19b85ad100b509f744e339c50871e]
INFO:root:    - defaults/noarch::charset-normalizer==3.3.2=pyhd3eb1b0_0[md5=c6fea3691e85cf7f568b0618ec29fc4f]
INFO:root:    - defaults/noarch::clikit==0.6.2=py_0[md5=281a572ac24a9d39f42d4f0e14cfeb8e]
INFO:root:    - defaults/noarch::crashtest==0.3.1=pyhd3eb1b0_1[md5=cc0df6f8162939216c20d9c2772f4b68]
INFO:root:    - defaults/noarch::gitdb==4.0.7=pyhd3eb1b0_0[md5=bdd15a7149734880c003d98110c56b5b]
INFO:root:    - defaults/noarch::html5lib==1.1=pyhd3eb1b0_0[md5=24c4f675dfc77f9d1ae6cd3c33731c3c]
INFO:root:    - defaults/noarch::jaraco.classes==3.2.1=pyhd3eb1b0_0[md5=7f47c66b55e92b2724174847703df72f]
INFO:root:    - defaults/noarch::pastel==0.2.1=py_0[md5=81a0d5c930710445569d9a2f5137d6a2]
INFO:root:    - defaults/noarch::pycparser==2.21=pyhd3eb1b0_0[md5=135a72ff2a31150a3a3ff0b1edd41ca9]
INFO:root:    - defaults/noarch::pylev==1.3.0=py_0[md5=8753b52aad70b2ed2ebaa6031853c816]
INFO:root:    - defaults/noarch::six==1.16.0=pyhd3eb1b0_1[md5=34586824d411d36af2fa40e799c172d0]
INFO:root:    - defaults/noarch::smmap==4.0.0=pyhd3eb1b0_0[md5=ea22ec22100b09799aa81f3e3ef9fa87]
INFO:root:    - defaults/noarch::tzdata==2024b=h04d1e81_0[md5=9be694715c6a65f9631bb1b242125e9d]
INFO:root:    - defaults/win-64::annotated-types==0.6.0=py312haa95532_0[md5=8d345a965a3da046a6956185e8c9d739]
INFO:root:    - defaults/win-64::brotli-python==1.0.9=py312hd77b12b_8[md5=59ff3db1abed10f8b7705c41f5199573]
INFO:root:    - defaults/win-64::bzip2==1.0.8=h2bbff1b_6[md5=33e784123d565c38e68945f07b461282]
INFO:root:    - defaults/win-64::ca-certificates==2024.11.26=haa95532_0[md5=1eab4288c83f2a4d26692974bc532220]
INFO:root:    - defaults/win-64::cachecontrol-with-filecache==0.14.0=py312haa95532_1[md5=1b63f5b4d1d9ab55e355dcb34b509ca0]
INFO:root:    - defaults/win-64::cachecontrol==0.14.0=py312haa95532_1[md5=6fc3ee0bba130fa39a5ed28cfea23228]
INFO:root:    - defaults/win-64::certifi==2024.12.14=py312haa95532_0[md5=43062d7db3d0b74169d50889920bb059]
INFO:root:    - defaults/win-64::cffi==1.17.1=py312h827c3e9_0[md5=fcef370fa986fc1ee293f82af8323339]
INFO:root:    - defaults/win-64::click-default-group==1.2.2=py312haa95532_0[md5=7b74b1031a6e24010e45ac0a6a24b14f]
INFO:root:    - defaults/win-64::click==8.1.7=py312haa95532_0[md5=12daed12ef284a081d3f0e0b580a3b5b]
INFO:root:    - defaults/win-64::colorama==0.4.6=py312haa95532_0[md5=161baa1308cf84c4817497287afb709a]
INFO:root:    - defaults/win-64::conda-lock==2.5.6=py312haa95532_0[md5=532ae540327907c5a018884f0c5a3a9f]
INFO:root:    - defaults/win-64::cryptography==43.0.3=py312hbd6ee87_1[md5=aabb66bdd241d82f159f1d229789b249]
INFO:root:    - defaults/win-64::distlib==0.3.8=py312haa95532_0[md5=4eb64552149cbe8e9f529c98c50acc4c]
INFO:root:    - defaults/win-64::ensureconda==1.4.4=py312haa95532_1[md5=33339efc00bcce64961221bfcfbb09cf]
INFO:root:    - defaults/win-64::expat==2.6.4=h8ddb27b_0[md5=4051c708005296ddd0c080d38f4203e1]
INFO:root:    - defaults/win-64::filelock==3.13.1=py312haa95532_0[md5=4ed2666b1d1ba1dc53229ecac885c134]
INFO:root:    - defaults/win-64::gitpython==3.1.43=py312haa95532_0[md5=20392fbd045721753466d09623089463]
INFO:root:    - defaults/win-64::idna==3.7=py312haa95532_0[md5=114efaad1ed61e1d00e3bbad0aac7d86]
INFO:root:    - defaults/win-64::jinja2==3.1.4=py312haa95532_1[md5=1b31978728d3f54f3f6d97de66369988]
INFO:root:    - defaults/win-64::keyring==24.3.1=py312haa95532_0[md5=5e9a1a2d4767209e1e5ec933bcdb01bd]
INFO:root:    - defaults/win-64::libffi==3.4.4=hd77b12b_1[md5=9807b377e11739ae3e920e10e607e460]
INFO:root:    - defaults/win-64::markupsafe==2.1.3=py312h2bbff1b_0[md5=5c006436f8dfef51f9fa40426d93fa7a]
INFO:root:    - defaults/win-64::more-itertools==10.3.0=py312haa95532_0[md5=306d39b9d09b1bd8eb02d21d35897594]
INFO:root:    - defaults/win-64::msgpack-python==1.0.3=py312h59b6b97_0[md5=53c1f9b0600f36d86e6cdf25195881e8]
INFO:root:    - defaults/win-64::openssl==3.0.15=h827c3e9_0[md5=7781aef6d9439002465f12df75789757]
INFO:root:    - defaults/win-64::packaging==24.2=py312haa95532_0[md5=d28d2bb057b702f955dfc42fc075c49d]
INFO:root:    - defaults/win-64::pkginfo==1.11.2=py312haa95532_0[md5=8f98d2e0c999c1fc08486f254fccf0d8]
INFO:root:    - defaults/win-64::platformdirs==3.10.0=py312haa95532_0[md5=21714abfa08e1d6e0435b9768ead622a]
INFO:root:    - defaults/win-64::pydantic-core==2.20.1=py312hefb1915_0[md5=1c05b65e815930e0ddf3a8f2896adcae]
INFO:root:    - defaults/win-64::pydantic==2.8.2=py312haa95532_0[md5=846d49de651d073ee775e2448190149f]
INFO:root:    - defaults/win-64::pyopenssl==24.2.1=py312haa95532_0[md5=cab227e3e0205f956b7d13ebc3118af6]
INFO:root:    - defaults/win-64::pysocks==1.7.1=py312haa95532_0[md5=e5f7b8790925322357ee89cc7ae5bb1c]
INFO:root:    - defaults/win-64::python==3.12.8=h14ffc60_0[md5=3cd26c4417640ae8134b4f4aa9499d32]
INFO:root:    - defaults/win-64::pywin32-ctypes==0.2.2=py312haa95532_0[md5=22f037bf4d3f42e99bfdf345bb407e51]
INFO:root:    - defaults/win-64::pyyaml==6.0.2=py312h827c3e9_0[md5=d3191c546f79d40bc826b9ea36e24f0b]
INFO:root:    - defaults/win-64::requests==2.32.3=py312haa95532_1[md5=578fbe35c5cd97907460f54a5da5e527]
INFO:root:    - defaults/win-64::ruamel.yaml.clib==0.2.8=py312h827c3e9_0[md5=a4c0471292bd589a1d8da0e5adbd45e4]
INFO:root:    - defaults/win-64::ruamel.yaml==0.18.6=py312h827c3e9_0[md5=023be647f9a82f66db5fa1388e67e1fb]
INFO:root:    - defaults/win-64::sqlite==3.45.3=h2bbff1b_0[md5=c5b3b929349655302bf811c45571da6d]
INFO:root:    - defaults/win-64::tk==8.6.14=h0416ee5_0[md5=da75707c571825eb2ad0eb806710b16b]
INFO:root:    - defaults/win-64::tomlkit==0.13.2=py312haa95532_0[md5=9e89ec07fd7050ab4cb57b441149f593]
INFO:root:    - defaults/win-64::toolz==0.12.0=py312haa95532_0[md5=fbdb7028a9962ba589efe2f45e12dfc7]
INFO:root:    - defaults/win-64::typing-extensions==4.11.0=py312haa95532_0[md5=2918633056b06d8a122e86f79e89ddd9]
INFO:root:    - defaults/win-64::typing_extensions==4.11.0=py312haa95532_0[md5=692d3960a098c8f463a1ccbf02cae9d6]
INFO:root:    - defaults/win-64::urllib3==1.26.19=py312haa95532_0[md5=eb7ed6516804b6c0105a8a181d7b7d42]
INFO:root:    - defaults/win-64::vc==14.40=haa95532_2[md5=d0a53bd27696fe718c3662812675e473]
INFO:root:    - defaults/win-64::virtualenv==20.28.0=py312haa95532_0[md5=ee63ce9947310b4bc2b3f2582060b5e8]
INFO:root:    - defaults/win-64::vs2015_runtime==14.42.34433=h9531ae6_2[md5=4b7a61e3eff596a8a90aca817be3cf4f]
INFO:root:    - defaults/win-64::webencodings==0.5.1=py312haa95532_2[md5=0adab6426342ac105941b97f0fd9a55b]
INFO:root:    - defaults/win-64::win_inet_pton==1.1.0=py312haa95532_0[md5=3ba2805fbd7809df9a5628c068b9d873]
INFO:root:    - defaults/win-64::xz==5.4.6=h8cc25b3_1[md5=cd89b06b0e59712386f00a41fb2dec32]
INFO:root:    - defaults/win-64::yaml==0.2.5=he774522_0[md5=959a63017c520ef9d345bd82ab344e3e]
INFO:root:    - defaults/win-64::zlib==1.2.13=h8cc25b3_1[md5=1f7ea85632611b25599e4cddf5b51d7d]
INFO:root:
INFO:root:
INFO:root:The following NEW packages will be INSTALLED:
INFO:root:
INFO:root:  annotated-types    pkgs/main/win-64::annotated-types-0.6.0-py312haa95532_0
INFO:root:  appdirs            pkgs/main/noarch::appdirs-1.4.4-pyhd3eb1b0_0
INFO:root:  brotli-python      pkgs/main/win-64::brotli-python-1.0.9-py312hd77b12b_8
INFO:root:  bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
INFO:root:  ca-certificates    pkgs/main/win-64::ca-certificates-2024.11.26-haa95532_0
INFO:root:  cachecontrol       pkgs/main/win-64::cachecontrol-0.14.0-py312haa95532_1
INFO:root:  cachecontrol-with~ pkgs/main/win-64::cachecontrol-with-filecache-0.14.0-py312haa95532_1
INFO:root:  cachy              pkgs/main/noarch::cachy-0.3.0-pyhd3eb1b0_0
INFO:root:  certifi            pkgs/main/win-64::certifi-2024.12.14-py312haa95532_0
INFO:root:  cffi               pkgs/main/win-64::cffi-1.17.1-py312h827c3e9_0
INFO:root:  charset-normalizer pkgs/main/noarch::charset-normalizer-3.3.2-pyhd3eb1b0_0
INFO:root:  click              pkgs/main/win-64::click-8.1.7-py312haa95532_0
INFO:root:  click-default-gro~ pkgs/main/win-64::click-default-group-1.2.2-py312haa95532_0
INFO:root:  clikit             pkgs/main/noarch::clikit-0.6.2-py_0
INFO:root:  colorama           pkgs/main/win-64::colorama-0.4.6-py312haa95532_0
INFO:root:  conda-lock         pkgs/main/win-64::conda-lock-2.5.6-py312haa95532_0
INFO:root:  crashtest          pkgs/main/noarch::crashtest-0.3.1-pyhd3eb1b0_1
INFO:root:  cryptography       pkgs/main/win-64::cryptography-43.0.3-py312hbd6ee87_1
INFO:root:  distlib            pkgs/main/win-64::distlib-0.3.8-py312haa95532_0
INFO:root:  ensureconda        pkgs/main/win-64::ensureconda-1.4.4-py312haa95532_1
INFO:root:  expat              pkgs/main/win-64::expat-2.6.4-h8ddb27b_0
INFO:root:  filelock           pkgs/main/win-64::filelock-3.13.1-py312haa95532_0
INFO:root:  gitdb              pkgs/main/noarch::gitdb-4.0.7-pyhd3eb1b0_0
INFO:root:  gitpython          pkgs/main/win-64::gitpython-3.1.43-py312haa95532_0
INFO:root:  html5lib           pkgs/main/noarch::html5lib-1.1-pyhd3eb1b0_0
INFO:root:  idna               pkgs/main/win-64::idna-3.7-py312haa95532_0
INFO:root:  jaraco.classes     pkgs/main/noarch::jaraco.classes-3.2.1-pyhd3eb1b0_0
INFO:root:  jinja2             pkgs/main/win-64::jinja2-3.1.4-py312haa95532_1
INFO:root:  keyring            pkgs/main/win-64::keyring-24.3.1-py312haa95532_0
INFO:root:  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
INFO:root:  markupsafe         pkgs/main/win-64::markupsafe-2.1.3-py312h2bbff1b_0
INFO:root:  more-itertools     pkgs/main/win-64::more-itertools-10.3.0-py312haa95532_0
INFO:root:  msgpack-python     pkgs/main/win-64::msgpack-python-1.0.3-py312h59b6b97_0
INFO:root:  openssl            pkgs/main/win-64::openssl-3.0.15-h827c3e9_0
INFO:root:  packaging          pkgs/main/win-64::packaging-24.2-py312haa95532_0
INFO:root:  pastel             pkgs/main/noarch::pastel-0.2.1-py_0
INFO:root:  pkginfo            pkgs/main/win-64::pkginfo-1.11.2-py312haa95532_0
INFO:root:  platformdirs       pkgs/main/win-64::platformdirs-3.10.0-py312haa95532_0
INFO:root:  pycparser          pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0
INFO:root:  pydantic           pkgs/main/win-64::pydantic-2.8.2-py312haa95532_0
INFO:root:  pydantic-core      pkgs/main/win-64::pydantic-core-2.20.1-py312hefb1915_0
INFO:root:  pylev              pkgs/main/noarch::pylev-1.3.0-py_0
INFO:root:  pyopenssl          pkgs/main/win-64::pyopenssl-24.2.1-py312haa95532_0
INFO:root:  pysocks            pkgs/main/win-64::pysocks-1.7.1-py312haa95532_0
INFO:root:  python             pkgs/main/win-64::python-3.12.8-h14ffc60_0
INFO:root:  pywin32-ctypes     pkgs/main/win-64::pywin32-ctypes-0.2.2-py312haa95532_0
INFO:root:  pyyaml             pkgs/main/win-64::pyyaml-6.0.2-py312h827c3e9_0
INFO:root:  requests           pkgs/main/win-64::requests-2.32.3-py312haa95532_1
INFO:root:  ruamel.yaml        pkgs/main/win-64::ruamel.yaml-0.18.6-py312h827c3e9_0
INFO:root:  ruamel.yaml.clib   pkgs/main/win-64::ruamel.yaml.clib-0.2.8-py312h827c3e9_0
INFO:root:  six                pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_1
INFO:root:  smmap              pkgs/main/noarch::smmap-4.0.0-pyhd3eb1b0_0
INFO:root:  sqlite             pkgs/main/win-64::sqlite-3.45.3-h2bbff1b_0
INFO:root:  tk                 pkgs/main/win-64::tk-8.6.14-h0416ee5_0
INFO:root:  tomlkit            pkgs/main/win-64::tomlkit-0.13.2-py312haa95532_0
INFO:root:  toolz              pkgs/main/win-64::toolz-0.12.0-py312haa95532_0
INFO:root:  typing-extensions  pkgs/main/win-64::typing-extensions-4.11.0-py312haa95532_0
INFO:root:  typing_extensions  pkgs/main/win-64::typing_extensions-4.11.0-py312haa95532_0
INFO:root:  tzdata             pkgs/main/noarch::tzdata-2024b-h04d1e81_0
INFO:root:  urllib3            pkgs/main/win-64::urllib3-1.26.19-py312haa95532_0
INFO:root:  vc                 pkgs/main/win-64::vc-14.40-haa95532_2
INFO:root:  virtualenv         pkgs/main/win-64::virtualenv-20.28.0-py312haa95532_0
INFO:root:  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.42.34433-h9531ae6_2
INFO:root:  webencodings       pkgs/main/win-64::webencodings-0.5.1-py312haa95532_2
INFO:root:  win_inet_pton      pkgs/main/win-64::win_inet_pton-1.1.0-py312haa95532_0
INFO:root:  xz                 pkgs/main/win-64::xz-5.4.6-h8cc25b3_1
INFO:root:  yaml               pkgs/main/win-64::yaml-0.2.5-he774522_0
INFO:root:  zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1
INFO:root:
INFO:root:
INFO:root:
INFO:root:Downloading and Extracting Packages: ...working... done
INFO:root:Preparing transaction: ...working... done
INFO:root:Verifying transaction: ...working... done
INFO:root:Executing transaction: ...working... done
INFO:root:#
INFO:root:# To activate this environment, use
INFO:root:#
INFO:root:#     $ conda activate SelfHost
INFO:root:#
INFO:root:# To deactivate an active environment, use
INFO:root:#
INFO:root:#     $ conda deactivate
INFO:root:
(Bootstrap) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda activate SelfHost
(SelfHost) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial> conda-lock -f .\environment.yml -p win-64
Traceback (most recent call last):
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Scripts\conda-lock-script.py", line 6, in <module>
    from conda_lock import main
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\__init__.py", line 3, in <module>
    from conda_lock.conda_lock import main
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\conda_lock.py", line 50, in <module>
    from conda_lock.conda_solver import solve_conda
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\conda_solver.py", line 19, in <module>
    from conda_lock.interfaces.vendored_conda import MatchSpec
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\interfaces\vendored_conda.py", line 2, in <module>
    from conda_lock._vendor.conda.models.match_spec import MatchSpec
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\models\match_spec.py", line 20, in <module>
    from .channel import Channel
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\models\channel.py", line 17, in <module>
    from ..base.context import context, Context
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\base\context.py", line 55, in <module>
    from ..common.configuration import (Configuration, ConfigurationLoadError, MapParameter,
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\common\configuration.py", line 41, in <module>
    from .path import expand
  File "C:\Users\rpolkinghorne\AppData\Local\miniconda3\envs\SelfHost\Lib\site-packages\conda_lock\_vendor\conda\common\path.py", line 21, in <module>
    from distutils.spawn import find_executable
ModuleNotFoundError: No module named 'distutils'
(SelfHost) PS C:\Users\rpolkinghorne\AppData\Local\Temp\PythonTrial>

@maresb
Copy link
Contributor

maresb commented Dec 18, 2024

Hi @thisrod,

Regarding the defaults side, usually it is better to define your environment all at once. For example, doing conda create -n Bootstrap python conda-lock should get you past the first error with defaults. To explain in more detail what goes wrong, your first command creates the Bootstrap environment with Python 3.12. I'm not sure about the exact details, but once you install Python in an environment, Conda tries to not change it because many packages are linked against the specific Python version. On the defaults channel, the conda-lock package is lagging behind and seems to have not yet been built for Python 3.12. This is the meaning of the "unsatisfiability" error.

On the conda-lock side, the defaults channel is still sneaking in to your environment.yml. Once it's in there, conda-lock correctly preserves it to maintain consistency. Finally, in your last install command installs a bunch of packages from the defaults channel, leading again to the distutils error.

As for why the defaults channel is so invasive, this StackOverflow answer says that the -c nodefaults option I suggested does nothing on the CLI, and only works with YAML files. Sorry, I didn't know because I always use YAML files. If you want to go the conda-forge route, I'd recommend adjusting your configuration as per this StackOverflow answer.

Your workflow seems rather unconventional. Here's how I would approach what I think you're trying to do:

Create a file called conda-locker.yaml:

name: conda-locker                                                                                                                                                   
channels:                                                                                                                                                            
- conda-forge                                                                                                                                                        
- nodefaults                                                                                                                                                         
dependencies:                                                                                                                                                        
- python                                                                                                                                                             
- conda-lock  
platforms:
- win-64

Now run

conda env create -n bootstrap -f conda-locker.yaml
conda activate bootstrap
conda-lock -f conda-locker.yaml
conda-lock install -n conda-locker
conda deactivate
conda env remove -n bootstrap
conda activate conda-locker

Note that the first command will generate the following warning that can be safely ignored:

EnvironmentSectionNotValid: The following section on '/home/mambauser/conda-locker.yaml' is invalid and will be ignored:
 - platforms

Thanks to the nodefaults in the conda-locker.yaml, purging defaults and adding conda-lock should be unnecessary.

As a trick for easier bootstrapping, you may want to check out micromamba. It's a drop-in replacement for conda, and it can install directly from conda-lock lockfiles:

micromamba env create -n conda-locker -f conda-lock.yml

This way, once you've generated conda-lock.yml you don't need conda-lock to install it.

Finally, you might be interested in pixi, a next-generation tool for projects that use Conda. I think it does a really good job of alleviating these rough edges you're experiencing here.

@thisrod
Copy link
Author

thisrod commented Dec 18, 2024

Hi @maresb

Thanks for all that support and explanation! I suspect pixi is the right answer for what I'm doing, but I really appreciate the work you're donating to maintain conda-lock.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants