Понимание Conda, получение ошибки ResolvePackageNotFound - PullRequest
0 голосов
/ 04 февраля 2020

Я новичок в Конде. Я читал, что это облегчает поддержку различных версий пакета. Я клонировал git репо: https://github.com/datitran/face2face-demo, используя

git clone https://github.com/datitran/face2face-demo

вместо того, что спрашивается на приведенной выше странице git, но, к сожалению, когда я бежал

conda env create -f environment.yml

Это дало мне следующую ошибку:

Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound: 
  - mkl==2017.0.3=0
  - jpeg==9b=0
  - readline==6.2=2
  - xz==5.2.2=1
  - libpng==1.6.27=0
  - tk==8.5.18=0
  - numpy==1.13.0=py35_0
  - bzip2==1.0.6=3

Я запустил их в Ubuntu так же, как и Ma c, но получил ту же ошибку в обоих местах.

Так что мой вопрос (все связанные, в основном я надеялся, что conda не выдаст мне этих ошибок):

  • Почему conda не может их устранить?
  • Как их решить?
  • Какой смысл использовать conda, если я сталкиваюсь с этими проблемами даже после его установки. Что есть в инсталляторе 500Mb +, который я скачал?

Мой второй вопрос касается оболочки conda на компьютере ma c, который я задавал по адресу: Как открыть оболочку conda на компьютере ma c

1 Ответ

1 голос
/ 04 февраля 2020

Почему Конда не может решить эти проблемы?

Поскольку запрашиваемые версии пакетов недоступны из каналов по умолчанию (больше). Начиная с версии 4.7, так называемый free канал был удален из значений по умолчанию , что теперь приводит к тому, что некоторые более старые версии модулей больше не обнаруживаются. Вы можете узнать, набрав conda search <package name>:

conda search mkl
Loading channels: done
# Name                       Version           Build  Channel
mkl                         2017.0.4      h4c4d0af_0  pkgs/main
mkl                         2018.0.0      hb491cac_4  pkgs/main
mkl                         2018.0.1      h19d6760_4  pkgs/main
mkl                         2018.0.2               1  pkgs/main
mkl                         2018.0.3               1  pkgs/main
mkl                           2019.0             117  pkgs/main
mkl                           2019.0             118  pkgs/main
mkl                           2019.1             144  pkgs/main
mkl                           2019.3             199  pkgs/main
mkl                           2019.4             243  pkgs/main

Как видите, запрашиваемой версии нет. Хотя это легко исправить, добавив -c free, то есть снова вручную добавив канал free:

conda search -c free mkl
Loading channels: done
# Name                       Version           Build  Channel
mkl                           11.3.1               0  free
mkl                           11.3.3               0  free
mkl                         2017.0.1               0  free
mkl                         2017.0.3               0  free
mkl                         2017.0.4      h4c4d0af_0  pkgs/main
mkl                         2018.0.0      hb491cac_4  pkgs/main
mkl                         2018.0.1      h19d6760_4  pkgs/main
mkl                         2018.0.2               1  pkgs/main
mkl                         2018.0.3               1  pkgs/main
mkl                           2019.0             117  pkgs/main
mkl                           2019.0             118  pkgs/main
mkl                           2019.1             144  pkgs/main
mkl                           2019.3             199  pkgs/main
mkl                           2019.4             243  pkgs/main

Вы можете добавить этот переключатель в создание своей среды, отредактировав environment.yml:

channels: !!python/tuple
- menpo
- defaults
- free

Какой смысл использовать conda, если я сталкиваюсь с этими проблемами даже после его установки. Что есть в инсталляторе 500Mb +, который я скачал?

Не путайте anaconda и conda, которые являются двумя разными вещами. conda, менеджер пакетов и среды поставляется с anaconda и miniconda. anaconda также поставляется с множеством предустановленных пакетов, которые вы можете увидеть, если наберете conda list. Если вы не хотите, чтобы все эти предустановленные пакеты (так как вы все равно хотите создавать свою собственную среду), вы можете заменить anaconda на miniconda, для которого не установлены предварительно установленные пакеты (кроме курс для python, pip, conda и их зависимостей)

...