Почему conda пытается обновить пакеты с помощью -no-update-dependencies?

Часто, когда я пытаюсь установить новый пакет, conda также хочет обновить другие пакеты, даже если я добавил переключатель -no-update-dependencies. Обновления кажутся "ненужными" - как и в большинстве случаев, только последняя часть номера версии изменилась.

Сегодня я хотел установить пакет mpld3, и conda хочет обновить мой пакет python с версии 3.4.4-2 до 3.4.4-4, хотя я добавил переключатель -no-update-dependencies.

Как я могу сделать conda для установки пакета mpld3, не касаясь других пакетов?

C:\...>conda install -p pyenv --no-update-dependencies mpld3
Fetching package metadata: ....
Solving package specifications: ...........

Package plan for installation in environment C:\...\pyenv:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    vs2010_runtime-10.00.40219.1|                0         1.1 MB
    python-3.4.4               |                4        31.7 MB
    mpld3-0.2                  |           py34_0         123 KB
    ------------------------------------------------------------
                                           Total:        33.0 MB

The following NEW packages will be INSTALLED:

    mpld3:          0.2-py34_0
    vs2010_runtime: 10.00.40219.1-0

The following packages will be UPDATED:

    python:         3.4.4-2 --> 3.4.4-4

Proceed ([y]/n)?

Ответ 1

TL;DR;

Не беспокойтесь, ваши пакеты не обновляются, только их номера сборки, которые должны быть безвредными.

какое-то объяснение

Обновляется номер сборки, а не версия каждого установленного пакета.

Как вы можете видеть, он устанавливает vs2010_runtime, это связано с обновлением vs2010_runtime, как его пакеты создавались с использованием функций. Поскольку у вас есть Python 3.4 (который построен с использованием Visual Studio 2010), он устанавливает среду выполнения VS 2010. Он установит среду выполнения VS 2015, если вы устанавливаете Python 3.5.

Числа/строки сборки никого не должны нарушать, потому что они должны быть исправлены в процессе сборки этого пакета (например: вы добавили флаг в компиляцию, которую вы не собирались).

Можно утверждать, что conda должна обновлять пакеты (одна и та же версия, разные номера сборки), когда присутствует --no-update-dependencies потому что вы можете столкнуться с неправильной установкой.

Ответ 2

Сразу хочу сказать, что эти опции устарели в новых версиях conda. Например, в версии conda 4.6.7 вы должны использовать "conda install --no-deps yourpackage"