web-dev-qa-db-fra.com

Pourquoi conda essaie-t-il de mettre à jour les paquets avec --no-update-dependencies?

Souvent, lorsque j'essaie d'installer un nouveau package, conda souhaite également mettre à jour d'autres packages, même si j'ai ajouté le commutateur --no-update-dependencies. Les mises à jour semblent "inutiles" - comme la plupart du temps, seule la dernière partie du numéro de version a changé.

Aujourd'hui, je voulais installer le package mpld3 et conda veut mettre à jour mon package python de la version 3.4.4-2 à 3.4.4-4, même si j'ai ajouté le --no-update -dépendances commutateur.

Comment puis-je faire en sorte que conda installe le package mpld3 sans toucher à mes autres packages?

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)?
18
stmax

tldr;

Ne vous en faites pas, vos packages ne sont pas mis à jour, seuls leurs numéros de build, qui devraient être inoffensifs.

une explication

Ce qui est mis à jour est le numéro de build , pas la version de chaque paquet installé.

Comme vous pouvez le voir, il installe le vs2010_runtime, Cela est dû à la mise à jour par conda de la façon dont ses packages ont été construits à l'aide de fonctionnalités. Puisque vous avez Python 3.4 (qui est construit à l'aide de Visual Studio 2010), il installe le runtime VS 2010. Il installerait le runtime VS 2015 si vous installiez Python 3.5.

Les numéros/chaînes de build ne devraient briser personne car ils sont censés être des correctifs pour le processus de construction de ce paquet (par exemple: vous avez ajouté un indicateur à la compilation que vous n'aviez pas l'intention de faire).

Il est discutable si conda doit mettre à jour les packages (même version, numéros de build différents) lorsque --no-update-dependencies Est présent car vous pourriez vous retrouver avec une mauvaise installation.

4

Je veux juste mentionner que ces options sont obsolètes dans les nouvelles versions de conda. Par exemple, dans conda version 4.6.7, vous devez utiliser "conda install --no-deps yourpackage"

5
JeffZheng