conda / conda-lock

Lightweight lockfile for conda environments
https://conda.github.io/conda-lock/
Other
459 stars 102 forks source link

Pip-based requirement cannot be resolved although it exists #436

Open leroyvn opened 1 year ago

leroyvn commented 1 year ago

Checklist

What happened?

I want to add a pip-based dependency to my environment.yml, specifically the drjit package. A minimal example would be:

channels:
  - conda-forge
dependencies:
  - pip:
    - drjit

I invoke conda-lock as follows:

conda-lock -f environment.yml

Locking fails with the following traceback:

Locking dependencies for ['linux-64', 'osx-64', 'win-64']...
INFO:conda_lock.conda_solver:linux-64 using specs ['pip *']
INFO:conda_lock.conda_solver:osx-64 using specs ['pip *']
Traceback (most recent call last):
  File "/home/leroyv/.local/bin/conda-lock", line 8, in <module>
    sys.exit(main())
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 1266, in lock
    lock_func(
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 996, in run_lock
    make_lock_files(
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 359, in make_lock_files
    lock_content = lock_content | create_lockfile_from_spec(
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 746, in create_lockfile_from_spec
    deps = _solve_for_arch(
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 682, in _solve_for_arch
    pip_deps = solve_pypi(
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/conda_lock/pypi_solver.py", line 294, in solve_pypi
    link = chooser.choose_for(op.package)
  File "/home/leroyv/.local/pipx/venvs/conda-lock/lib/python3.10/site-packages/conda_lock/_vendor/poetry/installation/chooser.py", line 72, in choose_for
    raise RuntimeError(
RuntimeError: Unable to find installation candidates for drjit (0.4.2)

I however checked: there is a macOS wheel for that version. Does anyone know what's happening?

Conda Info

active environment : None
            shell level : 0
       user config file : /home/leroyv/.condarc
 populated config files : /home/leroyv/miniforge3/.condarc
                          /home/leroyv/.condarc
          conda version : 23.3.1
    conda-build version : not installed
         python version : 3.9.9.final.0
       virtual packages : __archspec=1=x86_64
                          __cuda=11.4=0
                          __glibc=2.35=0
                          __linux=5.19.0=0
                          __unix=0=0
       base environment : /home/leroyv/miniforge3  (writable)
      conda av data dir : /home/leroyv/miniforge3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /home/leroyv/miniforge3/pkgs
                          /home/leroyv/.conda/pkgs
       envs directories : /home/leroyv/miniforge3/envs
                          /home/leroyv/.conda/envs
               platform : linux-64
             user-agent : conda/23.3.1 requests/2.27.1 CPython/3.9.9 Linux/5.19.0-43-generic ubuntu/22.04.2 glibc/2.35
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Conda Config

==> /home/leroyv/miniforge3/.condarc <==
channels:
  - conda-forge

==> /home/leroyv/.condarc <==
auto_activate_base: False
channels:
  - conda-forge

Conda list

No response

Additional Context

No response