Как я могу определить каналы, которые мне нужно включить, чтобы установить пакет conda? - PullRequest
2 голосов
/ 28 апреля 2020

Например, скажем, я хочу установить пакет bioconda gapfiller.

conda new -n gapfiller -c bioconda -c conda-forge gapfiller

Если я запускаю указанную выше команду, я получаю следующую ошибку:

PackagesNotFoundError: The following packages are not available from current channels:

  - boost[version='>=1.57.0,<1.57.1.0a0']

Current channels:

  - https://conda.anaconda.org/bioconda/linux-64
  - https://conda.anaconda.org/bioconda/noarch
  - https://conda.anaconda.org/conda-forge/linux-64
  - https://conda.anaconda.org/conda-forge/noarch
  - https://repo.anaconda.com/pkgs/main/linux-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/r/linux-64
  - https://repo.anaconda.com/pkgs/r/noarch

На этом этапе, какой следующий шаг я должен предпринять, чтобы определить, какой канал мне нужно начать в том числе?

Я пытался посмотреть meta.yml для пакета , но в нем перечислены только пакеты , от которых зависит gapfiller, а не каналы, от которых они можно найти в. Я также пытался conda search boost, но, конечно, это возвращает только (несовместимые) результаты в моих текущих каналов, он не говорит мне, как найти новые каналы:

$ conda search boost
Loading channels: done
# Name                       Version           Build  Channel             
boost                         1.65.1          py27_4  pkgs/main           
boost                         1.65.1  py27h0eb07c9_3  pkgs/main           
boost                         1.65.1          py35_4  pkgs/main           
boost                         1.65.1  py35heb9229b_3  pkgs/main           
boost                         1.65.1          py36_4  pkgs/main           
boost                         1.65.1  py36hfaba7b9_3  pkgs/main           
boost                         1.67.0          py27_4  pkgs/main           
boost                         1.67.0          py35_4  pkgs/main           
boost                         1.67.0          py36_4  pkgs/main           
boost                         1.67.0          py37_4  pkgs/main           
boost                         1.71.0          py38_0  pkgs/main 

Как я могу определить правильный канал, чтобы использовать для решения PackagesNotFoundError?

1 Ответ

2 голосов
/ 28 апреля 2020

Часто, когда дело доходит до старых версий пакетов, их переводят на свободный канал , который был отключен от метаканала по умолчанию в прошлом году . Есть несколько способов добавить его обратно (например, параметр конфигурации restore_free_channel или переменная env CONDA_RESTORE_FREE_CHANNEL), но простое решение ad ho c состоит в том, чтобы включить его как один из каналы:

conda install -c free ...

Для boost=1.57 на linux -64 платформе, я вижу

conda search -c free boost=1.57[subdir='linux-64']
Loading channels: done
# Name                       Version           Build  Channel             
boost                         1.57.0               0  free                
boost                         1.57.0               1  free                
boost                         1.57.0               4  free   
...