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

  • 相关阅读:
    Ubuntu 16 安装redis客户端
    crontab 参数详解
    PHP模拟登录发送闪存
    Nginx配置端口访问的网站
    Linux 增加对外开放的端口
    Linux 实用指令之查看端口开启情况
    无敌的极路由
    不同的域名可以指向同一个项目
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error
    Redis 创建多个端口
  • 原文地址:https://www.cnblogs.com/somedayLi/p/12354460.html
Copyright © 2011-2022 走看看