The problem here was that the python derivation was loaded directly into nix shell instead of being wrapped in a mkShell.
I have to say I think it is a actually a really weird behaviour of nix-shell to not build the derivation by default. I know that nix-shell was original invented to debug builds and therefore not building the main derivation made sense.
But by now I assume that 95% of all uses of nix-shell (if not even more) are to load normal environments.
So why don’t we change the defualt behaviour of nix-shell to actually load derivations, while still allowing to use the build debug mode by passing --debug-build?
I’m very sure that this would have saved me a lot of time and confusion when I started using nix.
Isn’t it a bit strange that you always need to rewrite/extend your expression before you can use it in a shell?
if you are using the impure pip venv, isn’t it then easier to use conda on ubuntu (or fedora) instead (so you could work with 99% of the features of JupyterLab)?
I have not found a nice example of withJupyter running properly with JupyterLab extensions and packages not in nixpkgs included.
Would be great if you could link one.
We tried using conda and it was a total disaster. The shared libraries it adds in front of LD_LIBRARY_PATH broke all kinds of tools from the host OS (RHEL6 at the time). Adding channels for packages not available in the default repository would trigger massive downgrades of other packages. Then I found Nix and got rid of conda as fast as I could
My experience with conda has been similar to @jonringer and @alexv. We tried it at work on a mix of windows and fedora machines and it was incredibly slow and unreliable and effectively drove us away from jupyter for most things.
with conda in an built env I never had issues with the performance
(there could be windows more likely to be blamed
But like the video demonstrated, in conda the sequence is key (and pinning packages and channels [before installation]-> makes it quite stable - because of that I used it in docker.
In my case the solver took hours and later in conda 4.x more than a day or failed (even for already built envs).
For me working with Jupyter without extensions would be like working with VScode without extensions…
I saw the documentation (which is quite old in some points) and tried some things out but for now I don’t see too much benefit from withJupyter (to get an advanced Data Science environment built)
… will try some more