zoukankan      html  css  js  c++  java
  • 运行jupyter notebook显示ImportError: cannot import name 'secure_write',导致始终显示In[*]问题,服务器挂掉

    一、问题描述:

        在运行jupyter notebook时,显示服务挂掉。看后台提示:ImportError: cannot import name 'secure_write',无法重启成功。

    1. 后台日志记录:

    2.jupyter notebook网页显示情况:

    • 无法重启:
    • 显示挂掉的服务

      -如果在cmd环境,重新链接当前环境到jupyter,会出现同后台日志记录同样的问题:
    Traceback (most recent call last):
      File "D:InstallSoftwareAnacondaenvsspyder_py3.5lib
    unpy.py", line 183, in _run_module_as_main
        mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
      File "D:InstallSoftwareAnacondaenvsspyder_py3.5lib
    unpy.py", line 142, in _get_module_details
        return _get_module_details(pkg_main_name, error)
      File "D:InstallSoftwareAnacondaenvsspyder_py3.5lib
    unpy.py", line 109, in _get_module_details
        __import__(pkg_name)
      File "D:InstallSoftwareAnacondaenvsspyder_py3.5libsite-packagesipykernel\__init__.py", line 2, in <module>
        from .connect import *
      File "D:InstallSoftwareAnacondaenvsspyder_py3.5libsite-packagesipykernelconnect.py", line 18, in <module>
        import jupyter_client
      File "C:Users木子AppDataRoamingPythonPython36site-packagesjupyter_client\__init__.py", line 4, in <module>
        from .connect import *
      File "C:Users木子AppDataRoamingPythonPython36site-packagesjupyter_clientconnect.py", line 35, in <module>
        from jupyter_core.paths import jupyter_data_dir, jupyter_runtime_dir, secure_write
    ImportError: cannot import name 'secure_write'
    

        阅读上面的报错提示代码,可以看出是ipykernel出了问题,大概是因为我想修改jupyter代码高亮,以及自动提示,安装一些列包,结果没装上,还把本身的运行环境搞崩了。甚是无语!

    二、问题分析:

        在Python中,若遇到 cannot import name ‘XXX’ 错误, 其实这有可能出现再模块导入的顺序问题上。 例如:在A文件头执行到语句 from B import XXX ,程序马上就会转到B文件中去,从头到尾顺序寻找B文件中的XXX函数,而A文件就暂停执行,直到把XXX函数复制到内存中,但B文件中的文件头可能也有导入, 如果B文件头中又导入了A文件中的函数,由于XXX函数还没有被复制。所以于A文件因为暂停执行而无法导入,就会出现上面的错误了。

    三、问题解决:

    那么现在针对上面的问题,重装ipykernel是最简洁的办法:
    如果是用pip uninstall ipykernel会提示:

    错误代码:

    ERROR: Cannot uninstall 'ipykernel'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
    

    额。。。后来试了很多方法。方法看后面链接。
    我的解决方法

    1. 比较奇葩,我去Anaconda Navigator里,在Spyder_py3.5环境中,重新安装Jupyter Notebook,launing...:
    2. 在cmd环境中测试python -m ipykernel install --user --name=spyder_py3.5,竟然解决问题了:
    3. 重新打开jupyter Notebook,能连接上!

      空心圆圈即是指“服务空闲”,可以用了,开心。

    别人的解决方法
    别人的方法看着挺有道理的,只是我仍旧不成功,如果仍旧没有解决你的问题,可以试一试下面的命令:

    conda update jupyter_core
    
    • 以及这个,对于无法正常卸载ipykernel(慎用!)
    pip install --ignore-installed ipykernel
    

    reference:https://blog.csdn.net/u010456484/article/details/52054241?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

  • 相关阅读:
    LeetCode算法第一题
    基础题整理
    MongoDB 之 Limit 选取 Skip 跳过 Sort 排序 MongoDB
    MongoDB 之 $关键字 及 $修改器 $set $inc $push $pull $pop MongoDB
    mongodb的数据类型
    mongodb的增删改查
    session与cookie之间的关系
    Python 格式化输出的3种方式
    判断python字典中key是否存在的两种方法
    python实现忽略大小写对字符串列表排序的方法
  • 原文地址:https://www.cnblogs.com/somedayLi/p/12354460.html
Copyright © 2011-2022 走看看