PackagesNotFoundError: следующие пакеты недоступны по текущим каналам:

124

Я новичок в Python. Я использовал его в нескольких проектах, но на самом деле мне не нужно было отклоняться от его стандартной настройки. Я пытаюсь установить несколько новых пакетов, чтобы получить доступ к функциям, необходимым для работы в университете. При попытке установить получаю следующее:

(base) C:\Anaconda2\Jupyter>conda install -c python-control -c cyclus slycot control
Solving environment: failed

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

  - slycot
  - control

Current channels:

  - https://conda.anaconda.org/python-control/win-64
  - https://conda.anaconda.org/python-control/noarch
  - https://conda.anaconda.org/cyclus/win-64

...

И куча других каналов, похожих на тот, что указан выше.

Искал решение, но ничего существенного не нашел. Я видел, что это может быть проблема с Windows, на которой я ее использую. В прошлом я понятия не имел, что происходит.

Имейте в виду, я не очень понимаю, как работают каналы и пакеты, так что любое понимание этого вопроса тоже было бы здорово.

Sunafegon
источник
Примечание для всех, кто это читает: не используйте базовую среду для всех своих проектов или вообще не используйте ее.
AMC

Ответы:

130

Попробуйте добавить Конда-кузнечный канал в списке каналов с помощью этой команды:
conda config --append channels conda-forge. Он сообщает conda, чтобы при поиске пакетов также просматривался канал conda-forge . Затем вы можете просто установить два пакета с помощью conda install slycot control.

Каналы - это в основном серверы, на которых люди могут размещать пакеты, и управляемая сообществом conda-forge обычно является хорошим местом для начала, когда пакеты недоступны по стандартным каналам. Я проверил, и там вроде есть и slycot, и control .

Макс С.
источник
2
Я попробовал то, что вы предложили, и пришел к следующему: {Среда решения: сбой PackagesNotFoundError: Следующие пакеты недоступны из текущих каналов: - slycot Текущие каналы: - repo.continuum.io/pkgs/main/win-64 - repo.continuum .io / pkgs / main / noarch } И еще ссылки на ссылки conda-forge внизу. Я читал на некоторых форумах, что в настоящее время slycot поддерживается только для Linux и OSX. Однако не уверен в обоснованности этих утверждений.
Sunafegon 01
1
Что ж, если пакет не поддерживается Windows, боюсь, вам не повезло. Единственное, что приходит в голову, - это попытаться установить его через pip ( pip install ...). Это установит пакет в ваш каталог conda, но вместо этого будет использовать встроенный менеджер пакетов Python. Иногда пакеты доступны только через pip.
Макс С.
Мне пришлось добавить conda config --add channels loopbioдля установки gtk2 ( github.com/loopbio/gtk2-feedstock )
ezchx 06
4
Как правило, рекомендуется использовать только conda config --appendканалы. Это поставит ему более низкий приоритет, чем стандартные каналы, и он будет искать только там, если пакет не найден где-либо еще. --addпомещает его в начало списка каналов, поэтому condaбудет установлено как можно больше пакетов из клиентского канала ... по моему опыту, это может стать беспорядочным.
Макс С.
Работает отлично. Запустите решение @MaxS перед созданием среды и установкой требований:conda create --name <env_name> --file <requirements.txt>
datalifenyc
25

Ты пробовала:

pip install <package>

или

conda install -c conda-forge <package>
mpour
источник
11
Это не помогает людям понять PackagesNotFoundErrors или что-либо вообще, если на то пошло. -c conda-forgeЭто не какое-то волшебное заклинание, которое все исправит, и есть важные различия между использованием Conda и pip в качестве диспетчера пакетов в среде Conda. Откровенно говоря, неряшливо и лениво.
AMC
4

Спасибо, у меня тоже сработал Max S. conda-forge.

scikit-learn на Anaconda-Jupyter Notebook.

Обновление моего scikit-learn с 0.19.1 до 0.19.2 в anaconda, установленном в Ubuntu на экземпляре Google VM:

Выполните в терминале следующие команды:

Сначала проверьте доступные пакеты с версиями

conda list    

На выходе он покажет пакеты и их установленные версии:

scikit-learn              0.19.1           py36hedc7406_0  

Обновление до версии 0.19.2 от июля 2018 г.

conda config --append channels conda-forge
conda install scikit-learn=0.19.2

Теперь проверьте, правильно ли установлена ​​версия или нет?

conda list 

Выход:

scikit-learn              0.19.2          py36_blas_openblasha84fab4_201  [blas_openblas]  conda-forge

Примечание. Не используйте команду pip, если вы используете Anaconda или Miniconda.

Я пробовал следующие команды:

!conda update conda 
!pip install -U scikit-learn

Он установит необходимые пакеты, также будут отображаться в, conda listно при попытке импортировать этот пакет он не будет работать.

На веб-сайте http://scikit-learn.org/stable/install.html он упоминается как: Предупреждение. Чтобы обновить или удалить scikit-learn, установленный с Anaconda или conda, вам не следует использовать пип.

Yogesh
источник
1
Этот ответ актуален только для определенного пакета в вашей среде в конкретное движение во времени и вряд ли когда-либо принесет пользу кому-либо еще.
AMC
1

Я пытался установить пакет fancyimpute для вменения, но безуспешно. Но когда я попробовал следующие команды, он был установлен: Команды:

conda update conda
conda update anaconda
pip install fancyimpute 

(здесь я пытался дать команду conda install fancyimpute, которая не сработала)

Аджай Кришна Саксена
источник
Этот ответ актуален только для определенного пакета в вашей среде в конкретное движение во времени и вряд ли когда-либо принесет пользу кому-либо еще.
AMC
0

Даже я столкнулся с той же проблемой, но решил ее

conda install -c conda-forge pysoundfile

при импорте

import soundfile 
Юнуса
источник
2
Этот ответ актуален только для определенного пакета в вашей среде в конкретное движение во времени и вряд ли когда-либо принесет пользу кому-либо еще.
AMC
0

Если ваша базовая среда conda активна ...

  • в этом случае "(база)", скорее всего, будет отображаться при запуске или в командной строке вашего терминала.

... и pip установлен в вашей базовой среде ...

  • что это: $ conda list | grep pip

... затем установите не найденный пакет, просто $ pip install <packagename>

markling
источник
0

Сама Conda предоставляет довольно подробное руководство по установке пакетов, отличных от conda. Подробности можно найти здесь: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html

Основная идея - использовать conda-forge. Если это не сработает, активируйте среду и используйте pip.

Клэр Куи
источник