小笔记-简单但够用系列_jupyter notebook执行代码无输出问题

数据分析和AI方面的活动可能用到 Anaconda ,其安装时会自动去扫描识别本机的一些软件,比如代码编辑器。默认也会安装 jupyter notebook ,但在使用时可能会遇到在 jupyter notebook 上执行 python 代码无输出的问题,这里记录下问题的解决思路及方法。

文章目录

  • 问题描述
  • 解决过程及思路
  • 中文用户名
  • Anaconda 安装选项
  • 代码运行内核
  • 关联插件版本
  • 一些额外情况
  • 问题描述

    在打开 jupyter notebook 后,使用 python3 编辑代码,执行无输出。
    请添加图片描述

    解决过程及思路

    中文用户名

    在网络上找到一些关于 jupyter notebook 不能输出的问题解决方法中,有看到说是与中文用户名有关,Anaconda 不支持中文字符的用户目录,需要对用户名进行重命名,并对用户目录及注册表信息进行修改,修改完成后就解决问题了。
    不知是否是问题原因的不同,我也是使用的中文用户名,但这个方式没有解决我的问题。

    Anaconda 安装选项

    对于安装选项问题,一般是在此前已经安装了 python 环境的情况下会有疑惑。
    Anaconda 在安装过程中会安装其自带的 python 版本,在安装时会有两个选项
    请添加图片描述
    但这两个选项对于 jupyter notebook 的使用没有太多的影响,主要是在于对程序的启动方式上,勾选后,就可以从命令行里直接运行打开程序了,但不勾选,也可以打开,就是要到指定目录下才能打开而已。
    一般在安装程序后,在开始菜单里都会有这个快捷方式了。

    代码运行内核

    查找资料及对界面的分析,jupyter notebook 上对于 python 代码的使用中有一个 kernel 的选项,代码的执行都是在这个 kernel 上执行。
    对比后发现的确是没有显示这个 kernel 。
    原因可能是 Anaconda 在安装 jupyter notebook 时,有部分的插件没有安装到。
    对 jupyter notebook 进行重装。

    pip install jupyter notebook
    

    安装完成后打开界面,出现了 kernel 。

    继续测试输出,仍然是有问题,代码没有执行。
    kernel 是代码执行必要的,也是导致代码执行问题的原因之一,未能解决问题应是还有其他问题。

    PS:后面发现如果程序自身没有正确启动,也不会出现这个 kernel ,若出现之前可以执行代码,但突然又不行了,可能是 kernel 出了问题,在 kernel 菜单下有重启 kernel 的选项,或者关闭重新打开后就可以解决。

    关联插件版本

    通过开始菜单的快捷方式打开 jupyter notebook, 在执行代码无输出后,其程序运行会话框就自动关闭了。
    通过 CMD 命令行执行 jupyter notebook ,以便查看执行报错。

    在执行代码时,发现有两个 Bad file descriptor 的报错。

    Bad file descriptor (C:\ci\zeromq_16027xxxx\work\src\epoll.cpp:100)
    Bad file descriptor (C:\ci\zeromq_16027xxxx\work\src\epoll.cpp:100)
    

    搜集资料,这个报错可能是因为 python pyzmq 插件的版本与其他依赖插件不匹配导致。
    pyzmq 的版本变更可以在这里查看 https://pyzmq.readthedocs.io/en/latest/
    卸载插件,然后制定安装一个低版本的尝试下。

    pip uninstall pyzmq
    pip install pyzmq==19.0.2
    

    再次启动 jupyter notebook 后进行测试,可正常输出,问题解决。

    一些额外情况

    对于未安装过 python 环境的电脑,一般都没有前面的问题。
    有看到一些帖子上说的原因是 Anaconda 安装 jupyter 时,没有安装 jupyter notebook ,导致的代码执行输出问题,重新安装 jupyter 就好了。。。
    这个回答应该不对应代码执行问题。没有安装 notebook 的话,应是在打开 jupyter notebook 时会出现报错,而不是在代码执行时再报错。

    来源:NYTWTYN

    物联沃分享整理
    物联沃-IOTWORD物联网 » 小笔记-简单但够用系列_jupyter notebook执行代码无输出问题

    发表回复