Something that confuses me is the difference between these two, used as buildInputs
for a mkShell
derivation:
(python3.withPackages (python-pkgs: [ python-pkgs.pandas ]))
versus
python3Packages.pandas
.
As far as I understand, the former builds a Python with pandas bundled, whereas the later drops pandas in the site-packages directory? The former version is therefore preferable?
Furthermore, the equivalent R constructs have slightly different semantics:
(rWrapper.override { packages = with rPackages; [ ggplot2 ]; })
versus
rPackages.ggplot2
.
In case of R, the R
binary is only present in the resulting shell when using the rWrapper, or when explicitly providing it, in addition to all packages. In case of Python, just specifying pandas makes the python
binary always available once a package is provided.
To make things a bit more confusing, there is a third case, Hunspell. In case of this package, providing dictionaries as inputs does not work, i.e. [ hunspell hunspellDicts.en-us ]
won’t work, only hunspellWithDicts [ hunspellDicts.en-us ]
will.
Are these intuitions correct?