[ Dev  Data  AI  ]

When we use jupyter extensions in VScode and try to run a line of code that requires context of relative path, the default behaviour in vscode is different that the one we have with jupyter-notebooks. You can easily see this when comparing the output of a pwd command, opening the same notebook connected to the same jupyter notebook server…


VSCode connected to the same jupyter-notebook server (remote)


Jupyter-notebook web

Jupyter notebook server (same notebook opened from vscode in the same remote server)


As you can see, the vscode execution fails because it´s trying to open a module that doesn´t found, since it´s searching in the wrong directory.

Change VSCode notebook file root behavior


To make VSCode notebook run as jupyter-notebook server, you need to open settings in VSCode and change “notebook file root”, from ${workspaceFolder} to ${fileDirname}

So the config file must be like this:


Fix for remote jupyter kernel: Force the path with python :)

But the things get complicated when you are dealing with remote jupyter notebooks, because it seems that we still don´t have any solution. In my case, when I work with tensorflow, I´m always using my prepared tensorflow docker image containing all the libraries and configurations…so this requires me to connect the vscode remotely to the container…and the past solution mentioned earliear doesn´t work :(

The only solution I was able to use is to manually change the working directory:

import os
    os.chdir(os.path.join(os.getcwd(), '/tf/notebooks/DNN/')) # '.' if the path is to current folder

NOTE: For more info, please check this https://github.com/microsoft/vscode-remote-release/issues/43