Почему 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"