Get current jupyter-lab notebook name [for Jupyter-lab version 2.1 and 3.0.1 and notebook version >6.0.3)

半城伤御伤魂 提交于 2021-02-19 06:14:43

问题


Problem

Hi all,

As my title suggested it, I would like to get access to the notebook name (in jupyter-lab) as a variable. So I could reuse it in the notebook itself (for example to name some figure files generated in the notebook).

I saw that a similar issue was opened years ago [see here]. However I didnt find a satisfactory answer.

I like the simplicity of the answer suggested by @bill:

import ipyparams
currentNotebook = ipyparams.notebook_name

However, it doesn't work for me. I got this warning the first time I execute the first cell:

import ipyparams
Javascript Error: Jupyter is not defined
currentNotebook = ipyparams.notebook_name
currentNotebook
   ''

Then if I rerun the cell again, I don't have the warning message anymore but the variable currentNotebook is still empty. (I run the cell sequentially, I didn't do a 'Run All Cells').

Configuration details

My Jupyter version is

jupyter notebook --version                                                                            
6.0.3]

jupyter-lab --version                                                                                 
2.1.1

I am using my notebook mostly for python code.


Edit 27/01/2021

@juan solution [here], using ipynbname is working for

jupyter-notebook : 6.1.6
jupyter lab : 2.2.6

but this solution is still not working for jupyter lab : 3.0.1


Edit 28/01/2021

ipynbname is now working for jupyter 3

More details about it [here]


回答1:


As an alternative you can use the following library: ipynbname

#! pip install ipynbname

import ipynbname
nb_fname = ipynbname.name()
nb_path = ipynbname.path()

This worked for me and the solution is quite straightforward.




回答2:


You need to put the import code in a separate cell above the function (ipyparams.notebook_name). Otherwise it will try to run the code before the library is fully loaded, so the currentNotebook variable is still blank. Putting the import in its own cell forces it to load before moving to cell #2.



来源:https://stackoverflow.com/questions/62815318/get-current-jupyter-lab-notebook-name-for-jupyter-lab-version-2-1-and-3-0-1-and

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!