18

After having installed a few packages and the TensorFlow package updates with conda install, when running the command conda list I see that have two numpy packages:

  1. numpy-base

  2. numpy

    numpy 1.14.3 py35h9bb19eb_2
    numpy-base 1.14.3 py35h7ef55bc_1

Questions:

  1. Why do I have two numpy versions?
  2. which one is being used and why got numpy-base package even installed?
Michael
  • 2,167
  • 5
  • 23
  • 38
  • This appears to be a split that Anaconda have done in building the package. Not sure why they did that – darthbith Jun 05 '18 at 13:38
  • 1
    Hey @darthbith , what do you mean by "split"? Split as splitting the original numpy-package into two parts so that e.g. the package "numpy-base" maybe always contains same content which does not get updated/changed as it is stable code and the package "numpy" which actually contains all the updates/changes as soon as the developers of numpy release a new version? – SolingerStuebchen Jun 05 '18 at 14:28
  • 1
    By split, I mean it looks like they put some of the package in the `numpy-base`, and the rest in the `numpy` package. I'm not sure exactly what the split is, or why it was done, or what code is where. Sorry! You could file an issue over on their Github repository asking why this happened: https://github.com/ContinuumIO/anaconda-issues/issues/ – darthbith Jun 05 '18 at 14:48
  • Thank you for that clarification! – SolingerStuebchen Jun 05 '18 at 15:40

1 Answers1

4

numpy, here, is an example of a metapackage, while numpy-base is the original numpy library package.

When a conda package is used for metadata alone and does not contain any files, it is referred to as a metapackage. The metapackage may contain dependencies to several core, low-level libraries and can contain links to software files that are automatically downloaded when executed. Metapackages are used to capture metadata and make complicated package specifications simpler.

The structure of a conda package is as follows, a metapackage only contains the info folder.

.
├── bin
│   └── f2py
├── info
│   ├── LICENSE.txt
│   ├── files
│   ├── index.json
│   ├── paths.json
│   └── recipe
└── lib
    └── python3.x

If you look at meta.yaml file of numpy, it, in fact, has a comment saying

numpy is a metapackage that may include mkl_fft and mkl_random both of which require numpy-base to build.

Read more about conda packages.

kHarshit
  • 11,362
  • 10
  • 52
  • 71