Issue

you:

  • created your own conda env
  • installed ipykernel and package x package y
  • created a kernel for jupyterhub as described here

but ìmport package x or other related packages does not work:

FileNotFoundError: [Errno 2] No such file or directory: 

Example

  • python-cdo
FileNotFoundError: [Errno 2] No such file or directory: 'cdo'

Why?

python-cdo is just a binding, it requires cdo binary from the software tree. When you start your own kernel in jupyterhub cdo is not loaded per default.

Solution

The easiest way to add path to missing library is to modify the kernel.json as described here. For the cdo example, the kernel.json looks like this:

{
"argv": [
  "DO NOT CHANGE THIS!",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
],
"display_name": "name of your kernel",
"language": "python",
"env": {
"PATH":
       "$PATH:/sw/rhel6-x64/cdo/cdo-1.9.8-magicsxx-gcc64/bin"
       }
}

You need to restart the kernel after you change this.

Note

kernel.json can be found in .local/share/jupyter/kernels/your_kernel/.