問題描述
Jupyter notebook中使用%%time對一個單元(cell)運作過後,cell中的變量會被釋放,以至于在後面的cell中用到該單元中的變量會顯示未定義,如下圖所示:

原因分析
ipython 7.4中的bug,在官方GitHub倉庫中有人回報過這個bug,這個bug後來在ipython 7.5中被修複了。
issue位址1:https://github.com/ipython/ipykernel/issues/401
issue位址2:https://github.com/ipython/ipython/issues/11659/
參考一個過時的解決方法:https://blog.csdn.net/daninedd/article/details/100343921,該部落客當時的方法是将ipython版本切換到7.3.0,然後也能解決這個問題,不過現在ipython都更新到7.22.0了,早在7.5.0中就解決了這個bug,是以呢,咱就要與時俱進了,看最新的解決辦法。
問題解決方法
更新ipython版本即可,步驟如下:
在開始菜單下打開anaconda目錄下的Anaconda Powershell Prompt
輸入指令:
pip install --upgrade ipython
重新開機notebook後問題解決
注:有人可能會問了,這都2021年了,ipython都更新到7.22.0了我怎麼還在用ipython 7.4,不錯,我裝的早,anaconda好像是18年裝的,是以啊,沒辦法,老版本的bug,被我碰到了,如果跟我一樣是使用老版本的碰到這個古老的問題,可以參考這篇解決方案。