【整理】jupyter notebook中python3内核不运行的一种可能原因及处理办法

一、问题概述  

一、问题概述

        之前一直用sublime,为了更好得使用pyecharts开始使用jupyter notebook,然后一直不顺利,直到刚刚才解决问题。蹭现在还记得赶紧把碰到的问题和踩过的坑记下来,以后忘了还能想起来。

        我个人的情况是,最开始装的python3.9.2,再用pip装了jupyter,最后安装了anaconda3(其中python3.8),到安装结束为止都很顺利。

        之后开始一直不顺利,打开jupyter发现代码一直不运行,选定单元格点击运行直接跳到下一个单元格而不输出结果。省略排查过程,最后发现两个问题点,一是ipynb文件不信任,二是python3内核被占用。大致情况类似下图(图源贴吧,我的情况更惨一点显示不可信)。

【整理】jupyter notebook中python3内核不运行的一种可能原因及处理办法_第1张图片

        第一个问题可能的原因,是我的系统里有两套python,两套python又分别有jupyter。每套python信任自己的jupyter而相互不信任。我在使用jupyter时发生了错误的调用,于是有了不信任的情况。这个情况在反反复复的卸载重装jupyter和anaconda后,得到了解决。

        第二个问题,在查看了打开jupyter notebook后未关闭的cmd时发现了“Bad file descriptor”报错。后得知可能原因很大概率是中文用户名……又经过艰难的改名之路,jupyter notebook终于可以顺利的运行。

【整理】jupyter notebook中python3内核不运行的一种可能原因及处理办法_第2张图片

二、jupyter卸载

        jupyter的卸载也是一个坑,大概原因还是两套python的关系。单独卸载jupyter发现还是能打开notebook简直神奇。最后大致明确了正确的卸载方法是,先卸载anaconda然后再用pip uninstall卸载jupyter及相关包,颠倒顺序可能会让你做大量的无用功。最后的最后为了防止没卸载干净还可以打开python文件夹搜索有没有残留……

        使用pip uninstall卸载需要执行一共8条代码,如下,一条一次,需要输入Y确认卸载。

pip uninstall jupyter
pip uninstall jupyter_core
pip uninstall jupyter-client
pip uninstall jupyter-console
pip uninstall notebook
pip uninstall qtconsole
pip uninstall nbconvert
pip uninstall nbformat

        如果想省去输入Y确认的步骤可以执行下面代码。

pip uninstall -y jupyter
pip uninstall -y jupyter_core
pip uninstall -y jupyter-client
pip uninstall -y jupyter-console
pip uninstall -y notebook
pip uninstall -y qtconsole
pip uninstall -y nbconvert
pip uninstall -y nbformat

        据说可以用下面的代码一次性完成,但我失败了,估计还是两套python的原因。

pip install pip-autoremove
pip-autoremove jupyter -y

三、修改用户名(实际只解决了表面问题还有后续一堆坑,建议重装系统)

        我的操作系统是win10家庭版。家庭版修改用户名的第一步是调出被默认隐藏的Administrator账户。Window+x,管理员身份运行命令提示符(或Powershell),输入代码激活账户。

net user administrator /active:yes

        重启电脑并以Administrator账户登录。推荐重启,很多经验推荐注销,会省事点,但是重命名用户文件夹时会报错。

        在C盘用户文件夹下,找到用户名相同的文件夹,重命名修改成新用户名。如果提示,文件夹被使用中,需要重启电脑。(图源见水印)

这里写图片描述

         Window+R,输入regedit打开注册表管理器,展开HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Profilelist。在Profilelist下的文件夹对应系统中用户,而文件夹中ProfileImagePath值是指向每个用户文件夹的地址,一个个点击查看,找到中文名用户的对应所在的ProfileImagePath值。(图源见水印)

这里写图片描述

        改ProfileImagePath的值,将地址改为新命名的文件夹名。(图源见水印)

这里写图片描述

         再次以管理员身份运行命令提示符,输入代码隐藏账户。之后重启一次电脑即可。

net user administrator /active:no

四、最后总结

        最后的经验教训是,初学者不要装两套python,另外记得电脑用户名用英文(拼音),over。

你可能感兴趣的:(python)