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

这篇博客记录了解决Jupyter Notebook执行Python代码无输出的详细步骤。问题可能由中文用户名、Anaconda安装选项、内核关联或插件版本不匹配引起。通过排查和调整,包括更改用户目录、检查安装选项、重装内核、更新或降级pyzmq插件,最终成功解决了代码无法正常输出的问题。
摘要由CSDN通过智能技术生成

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

问题描述

在打开 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 时会出现报错,而不是在代码执行时再报错。

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值