(已解决)Jupyter Notebook使用argparse报错:An exception has occurred, use %tb to see the full traceback.

news/2025/2/22 23:33:39/

文章目录

      • 背景
      • 原因
      • 解决方案
        • 方法1
        • 方法2

背景

在Jupyter Notebook中执行如下代码报错:

import argparseparser = argparse.ArgumentParser(description="Deep Gaussian Processes on MNIST")
parser.add_argument("-n", "--num-epochs", default=5, type=int)
parser.add_argument("-t", "--num-iters", default=60, type=int)
parser.add_argument("-b", "--batch-size", default=1000, type=int)
parser.add_argument("-lr", "--learning-rate", default=0.01, type=float)args = parser.parse_args()

结果报错:
在这里插入图片描述

注意:这段代码只有在jupyter notebook中才会报错,在pycharm中是不会报错的。

原因

以下是个人理解,不一定对,但我认为是这样,希望对你有启发。

args = parser.parse_args()

parse_args()有两种形式:

1.parse_args()#从用户输入读取参数。
2.parse_args(args=["-n3""-b2"])#表示给n参数赋值为3,b参数赋值为2。其他参数默认。
parse_args(args=[])#表示所有参数使用默认。

而我们的报错情况是形式1,一旦执行parse_args()语句,python系统就会执行读取参数的操作(我们看不到),此时jupyter notebook系统默认会给一个奇怪的参数:

-f C:\Users***\AppData\Roaming\jupyter\runtime\kernel-229ed901-2d6b-48ce-a402-fc5d3a697aea.json

这个参数- f并不是我们需要的,所以报错。而pycharm不会给上面这个奇怪的参数,所以相安无事。

而如果采用形式2,python系统不再读取,所以不会读入那个-f参数。

解决方案

根据上面的原理,聪明的你应该想到了解决方案。

方法1

将parse_args()由形式1换成形式2。

最后一行换成:

import argparseparser = argparse.ArgumentParser(description="Deep Gaussian Processes on MNIST")
parser.add_argument("-n", "--num-epochs", default=5, type=int)
parser.add_argument("-t", "--num-iters", default=60, type=int)
parser.add_argument("-b", "--batch-size", default=1000, type=int)
parser.add_argument("-lr", "--learning-rate", default=0.01, type=float)args = parser.parse_args(args=[])

成功:
在这里插入图片描述

方法2

添加一个接受上面那个参数的语句。

import argparseparser = argparse.ArgumentParser(description="Deep Gaussian Processes on MNIST")
parser.add_argument("-n", "--num-epochs", default=5, type=int)
parser.add_argument("-t", "--num-iters", default=60, type=int)
parser.add_argument("-b", "--batch-size", default=1000, type=int)
parser.add_argument("-lr", "--learning-rate", default=0.01, type=float)parser.add_argument("-f","--file",default="file")#接收这个-f参数
args = parser.parse_args()
print(args.file)

不报错,输出如下:

C:\Users***\AppData\Roaming\jupyter\runtime\kernel-229ed901-2d6b-48ce-a402-fc5d3a697aea.json


完结撒花


http://www.ppmy.cn/news/351083.html

相关文章

面试了十几家软件测试公司谈谈我最近面试的总结

由于互联网裁员,最近在 bosss 上投了些简历,测试开发岗,看看目前市场情况。 虽然都在说大环境不好,失业的人很多,我最近约面试的还是比较多的,说说最近的体会吧,希望能给大家提供价值。 1、20K…

Ogre与OIS实现键盘响应

Ogre与OIS实现键盘响应 环境: ubuntu 18.04Ogre 1.12.13OIS 1.3.0 ubuntu下安装OIS sudo apt-get install libois-dev -y帧监听是基于一个观察者的模式。 在OGRE中其工作流程是: 在帧被渲染前,Ogre::Root 遍历所有被添加的FrameListener并…

5款大厂设计师都在用的网页设计工具

本文收集了5款大厂设计师使用的几种流行易用的网页设计工具,其中一个可以AI自动生成设计稿,非常的方便,相信一定有一个适合你的网页设计工具。 1.即时设计 即时设计是一款免费的在线 UI 设计工具,无系统限制,浏览器打…

手机号和座机号正则表达式

phoneInputBlur (e, record) {const { value } e.targetconst reg /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/if (value ! && value ! null) {if (!reg.test(value)) {this.$message.warn(手机号格式不正确,请重新输入)record.jypx1701 }}}…

IPEX座

接触射频设计的设计者对射频接头IPEX座子肯定不陌生,关于IPEX座子规格有几代之分,不清楚里面的规格容易选购错误,为了避免入坑,笔者简单介绍下IPEX座子。 首先,I-PEX是个做连接器的公司,现已被被第一精工收…

android手机无法开机自动启动,安卓手机无法开机的6种解决方法

现在安卓智能机十分普遍,但是也容易出现多重问题。关于手机不能开机是很多朋友都碰到的问题。那么手机不能开机怎么办?不用担心,下面学习啦小编就为大家介绍安卓手机突然无法开机的6种解决方法,希望可以帮到大家。 安卓手机无法开机的原因 1.手机电量过放无法开机 有时候晚…

python图书馆抢座代码_“我去图书馆”公众号代码抢座的实现

因为要考研嘛,想去图书馆。我们学校是早上六点开抢,同学们太猛,我每天5点50起床抢,都不太抢的到想要的座位,于是我就花了个两三天琢磨着怎么用代码来实现这个抢座,目前已经完成,虽然因为微信的那个sessid更新的比较频繁,还是需要早起来拿写好的安卓软件传个cookie的数据…

Android Studio实现图书馆订座系统

系统目录 一、项目背景二、需求分析三、开发环境四、详细设计1、主界面2、 预定座位3、 查看座位4、个人信息5、我的步数6、数据库 五、运行演示六、项目总结七、源码获取 一、项目背景 在校园生活中,图书馆是很多人选择的学习圣地,这里不仅充满书香气息…