Непоследовательная среда, пожалуйста, внимательно проверьте план пакета

131

Я пытался обновить или установить новые пакеты из анаконды, и в последнее время появилось это сообщение:

The environment is inconsistent, please check the package plan carefully
The following package are causing the inconsistency:

   - defaults/win-32::anaconda==5.3.1=py37_0

done

Я пробовал с, conda clean --allа затем, conda update --allно он сохраняется.

Conda Info

active environment : base
    active env location : C:\Users\NAME\Continuum
            shell level : 1
       user config file : C:\Users\NAME\.condarc
 populated config files : C:\Users\NAME\.condarc
          conda version : 4.6.11
    conda-build version : 3.17.7
         python version : 3.7.3.final.0
       base environment : C:\Users\NAME\Continuum  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/win-32
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/win-32
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/win-32
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-32
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\Users\NAME\Continuum\pkgs
                          C:\Users\NAME\.conda\pkgs
                          C:\Users\NAME\AppData\Local\conda\conda\pkgs
       envs directories : C:\Users\NAME\Continuum\envs
                          C:\Users\NAME\.conda\envs
                          C:\Users\NAME\AppData\Local\conda\conda\envs
               platform : win-32
             user-agent : conda/4.6.11 requests/2.21.0 CPython/3.7.3 Windows/10 Windows/10.0.17763
          administrator : False
             netrc file : None
           offline mode : False
Ангел Салазар
источник

Ответы:

85

Я столкнулся с той же проблемой. Просто бег

conda install anaconda

решил проблему для меня.

mm49307
источник
1
У меня такая же проблема, и я сделал, как вы предложили. Но я все еще получаю несоответствия. Я использую osx-64, вы тоже используете osx?
pink.slash
Да, у меня macOS Mojave v10.14.4.
mm49307
2
Я получаю сообщение об ошибке с conda update --all, поэтому это не решает проблему (в некоторых случаях), но, conda installпохоже, работает (и для обновления других пакетов в списке)
Джакомо
9
Для меня решение состояло из двух шагов: во-первых, он conda install anacondaпросто установил пакет anaconda и удалил один пакет conda + обновил несколько зависимостей. Затем я последовал за ним, conda update --allи все снова стало хорошо! Моя система - Ubuntu 18.04, и я столкнулся с этой проблемой после обновления spyderпакета, который также вызвал обновление condaсамого себя, и это вызвало несоответствие.
MF.OX
conda install anacondaу меня тоже сработало, хотя мне пришлось ждать более 5 минут, пока conda предложит пакетный план.
Sahar
51

видел это в группах Google

Это сообщение было добавлено в conda 4.6.9, ранее не было индикации, когда conda обнаруживает несогласованную среду, если conda не была запущена в режиме отладки. Вероятно, что ваша среда какое-то время была несовместимой, но обновление до conda сделало это видимым. Лучше всего запустить conda install package_name для несовместимых пакетов, чтобы позволить conda попытаться восстановить согласованность.

и это действительно работает для меня.

Может тебе стоит попробовать conda install anacondaв твоей ситуации.

tys1998
источник
8
Несогласованная среда была проблемой для ВСЕХ моих сред conda, conda install anacondaне решила ее. Мне нужно сделать именно это: (пере) установить каждый вызванный пакет индивидуально. Спасибо!
conner.xyz 02
1
@ conner.xyz Я оказался в похожей ситуации и решил, что написание фрагмента, переустанавливающего каждый пакет, было бы правильным решением (см. мой ответ ниже). Однако ему повезло, что ему не пришлось работать в нескольких средах.
YenForYang
Отличный ответ - действительно приятно получить объяснение, почему это произошло, а также краткое исправление, которое (по крайней мере, для меня) отлично работает.
DrAl
20

Несоответствия вызваны разными версиями пакетов и их конфликтующими зависимостями.

conda update --all

Эта команда обновляет все пакеты, а затем conda самостоятельно устраняет несоответствие.

Сачин Кумар
источник
Это лучший ответ, потому что он обновляет только те пакеты, которые конфликтуют и вызывают несоответствия.
Рич Лысаковски PhD
1
Это НЕ решает проблему, потому что несогласованность вызвана не зависимостями, а скорее изменением метаданных на стороне сервера (то есть в канале). Я попробовал это, и это не сработало, однако, как говорится в ссылке, это предупреждение, которое можно игнорировать.
Jena
7

Учитывая ситуацию, подобную следующей,

> conda update -c intel --all
Collecting package metadata: done
Solving environment: |
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:

  - intel/win-64::ipython==6.3.1=py36_3
  - intel/win-64::prompt_toolkit==1.0.15=py36_2
done

Как упоминалось в других ответах, идея состоит в том, чтобы иметь некоторую installреакцию на несовместимые пакеты.

Таким образом, с помощью нескольких копий и вставок вы могли:

> conda install intel/win-64::ipython==6.3.1=py36_3
Collecting package metadata: done
Solving environment: /
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:

  - intel/win-64::ipython==6.3.1=py36_3
  - intel/win-64::prompt_toolkit==1.0.15=py36_2
done

## Package Plan ##

  environment location: c:\conda

  added / updated specs:
    - ipython


The following NEW packages will be INSTALLED:

  jedi               intel/win-64::jedi-0.12.0-py36_2
  parso              intel/win-64::parso-0.2.0-py36_2
  pygments           intel/win-64::pygments-2.2.0-py36_5
  wcwidth            intel/win-64::wcwidth-0.1.7-py36_6


Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

(и вам придется повторить для всех пакетов)


Мой «ярлык»

В качестве альтернативы, приготовьте (уродливый) однострочный (это должно работать как для Windows, так и для других платформ)

Примечание : под ORIGINAL_COMMAND я имею в виду любую команду, которая выдает сообщение об ошибке (в идеале без каких-либо других побочных эффектов)

<ORIGINAL_COMMAND> 2>&1 | python -c "import sys,re,conda.cli; conda.cli.main('conda','install','-y',*re.findall(r'^\s*-\s*(\S+)$',sys.stdin.read(),re.MULTILINE))"

Расширяя приведенный выше однострочный текст:

from re import findall, MULTILINE
from sys import stdin
from conda.cli import main

main(
    "conda", "install", "-y",
    "--force",  # Maybe add a '--force'/'--force-reinstall' (I didn't add it for the one-liner above)
    *findall(r"^\s*-\s*(\S+)$", stdin.read(), MULTILINE)  # Here are the offenders
)
YenForYang
источник
5

Команда conda install -c anaconda anacondaсделала свое дело. Для моей настройки мне нужно указать канал, иначе это не сработает. После запуска команды в терминале мне было предложено обновить список пакетов, которые оказались несовместимыми. Без этого шага я не смог бы установить или обновить какие-либо пакеты с помощью conda install <package_name>или conda update <package_nameсоответственно.

Крис Стерн
источник
5

Была такая же проблема, и ни одно из других решений не помогло мне. В итоге пришлось удалить и переустановить conda, а затем переустановить все мои библиотеки.

jschabs
источник
1
Почему голос против? Я пробовал многие другие решения, и все они приводили к одному и тому же сообщению о несогласованных пакетах и ​​бесконечном вращении conda. Полная переустановка заняла всего несколько минут и снова дала мне работающую систему. Я бы явно не рекомендовал это, если у вас есть какие-либо ценные среды, которые необходимо сохранить.
Bas Swinckels
@BasSwinckels lol, возможно, я недостаточно подчеркнул, что НИ ОДИН из других решений не работал для меня.
jschabs
5

Окончательные решения:

conda activate base
conda install anaconda
conda update --all

Работает в Windows 10 и Ubuntu 18.04 (кредиты @ MF.OX для ubuntu).

У меня устранены следующие проблемы:

  • The environment is inconsistent
  • WARNING conda.base.context:use_only_tar_bz2(632)
ганс
источник
Спасибо, это работает. После обновления базового env я активировал свой виртуальный env и повторил, conda upadte --allчтобы получить # All requested packages alread installed.сообщение.
Hongsoog
3

Если другие решения не работают, восстановление среды может исправить это.

Используйте conda list --revisions, выберите номер версии и conda install --revision [#] возвращайтесь шаг за шагом, пока все снова не заработает.

kenl
источник
1

Что сработало для меня, так это conda remove <offending_packagename>, conda update --allи затем, наконец conda install <offending_packagename>.

Milind R
источник
0

Вы, вероятно, установили анаконду с python 2.7, но позже вы использовали python 3.x. Таким образом, вы получаете сообщение об ошибке. В моем случае я решил проблему, активировав анаконду с помощью python 2.7:

conda create --name py2 python=2.7
Якир
источник