Как исправить ошибку `ResolvePackageNotFound` при создании среды Conda? - PullRequest
1 голос
/ 03 октября 2019

Когда я запускаю следующую команду: conda env create -f virtual_platform_mac.yml

Я получаю эту ошибку

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

ResolvePackageNotFound: 
  - pytables==3.4.2=np113py35_0
  - h5py==2.7.0=np113py35_0
  - anaconda==custom=py35_0

Как мне решить эту проблему?

Я работаю на Mac OS X.

1 Ответ

2 голосов
/ 03 октября 2019

Конда v4.7 отбросила ветку хранилища Anaconda Cloud под названием бесплатный канал ради повышения производительности решения. К сожалению, это относится ко многим более старым пакетам, которые никогда не переносились в ветки репозитория, которые были сохранены. Это нарушает требования, которые здесь не выполняются.

Восстановление free Поиск каналов

Conda предоставляет средства для восстановления доступа к этой части хранилища с помощью параметра конфигурации restore_free_channel. Вы можете убедиться, что это проблема, увидев, что

conda search pytables=3.4.2[build=np113py35_0]

не удалось, тогда как

CONDA_RESTORE_FREE_CHANNEL=1 conda search pytables=3.4.2[build=np113py35_0]

успешно находит пакет, и аналогично для остальных.

Опция1: Постоянная настройка

Если вы ожидаете, что вам часто понадобятся более старые пакеты, вы можете глобально установить параметр и продолжить установку:

conda config --set restore_free_channel true
conda env create -f virtual_platform_mac.yml

Опция 2: Временная настройка

Как и во всех параметрах конфигурации Conda, вы также можете использовать соответствующую переменную среды для временного восстановления доступа только для команды:

CONDA_RESTORE_FREE_CHANNEL=1 conda env create -f virtual_platform_mac.yml

Pro-Tip: Env-специфичные переменные среды

Если у вас есть определенный env, который вы всегда хотите иметь доступ к каналу free , но вы не хотите устанавливать этот параметр глобально, вы можете вместо этого установить и сбросить переменную CONDA_RESTORE_FREE_CHANNEL в сценариях, размещенных впапки etc/conda/activate.d и etc/conda/deactivate.d соответственно. См. документацию для примера .

...