Condalock files generated by Wave

Hmm, I’m not really sure. Claude gave me this advice. Maybe worth having a play around with building from Conda locally? If you can make it work locally but not via Wave then let me know and we can dig into what differences there are between the two build setups.


Yes, conda-lock does support pip packages, but there are a couple of things to check:

1. Correct environment.yml structure

The pip packages need to be nested under pip as a dependency item:

dependencies:
  - python=3.11
  - pip
  - pip:
    - some-pip-package
    - another-package>=1.0

Note that pip itself must be listed as a conda dependency before the pip: section.

2. Enable pip support in conda-lock

By default, conda-lock should process pip dependencies, but you can explicitly enable it:

conda-lock --pip-support

Or in a pyproject.toml or conda-lock.yml config:

# conda-lock.yml
pip_support: true

3. Check the output format

Pip packages appear differently in the lock file. In the unified conda-lock.yml format, they show up with manager: pip rather than manager: conda. If you’re generating platform-specific .lock files, pip packages are listed in a separate section.

4. Limitations

A few things to be aware of:

  • Pip packages won’t have the same strict reproducibility as conda packages (pip doesn’t lock transitive dependencies the same way)
  • Some pip packages with complex build requirements may not resolve cleanly
  • VCS dependencies (git+https://…) have limited support

If packages are still missing, check that your pip package names are valid on PyPI and that there are no typos. You can also run with -v for verbose output to see what’s happening during the solve.

What does your current environment.yml look like?