You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook中argparse模块的正确使用方法及常见问题解答

可以在Jupyter Notebook中使用argparse模块,报错原因如下

argparse默认的parse_args()方法会读取系统命令行参数,而Jupyter Notebook内核启动时自带了若干内置参数,不存在你代码中定义的--x、--y参数,因此会抛出参数未识别的报错。

两种常用正确使用方式

方法1:用parse_known_args忽略多余参数

该方法会仅解析你显式定义的参数,Jupyter自带的多余参数会被自动忽略,适合调试原本用于命令行执行的Python脚本,改动量极小:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--x', type=int, required=True)
parser.add_argument('--y', type=int, required=True)
# 第一个返回值是你定义的参数解析结果,第二个返回值是未识别的多余参数可直接丢弃
args, _ = parser.parse_known_args()
# 手动给参数赋值即可
args.x = 10
args.y = 20
product = args.x * args.y
print('Product:', product)

方法2:直接向parse_args传入自定义参数列表

直接将需要的参数以列表形式传入parse_args,完全绕开系统命令行参数,参数定义更直观,适合在Notebook中直接用argparse管理参数的场景:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--x', type=int, required=True)
parser.add_argument('--y', type=int, required=True)
# 直接传入自定义参数,和命令行传参的格式一一对应
args = parser.parse_args(args=['--x', '10', '--y', '20'])
product = args.x * args.y
print('Product:', product)
两种方案选型建议
  • 若你是将命令行脚本搬到Notebook临时调试,优先选方法1,调试完成后改回命令行运行时不需要修改代码
  • 若你需要在Notebook中长期用argparse管理参数,优先选方法2,参数值直接在代码中定义,可读性更强

内容的提问来源于stack exchange,提问作者user785099

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:24:00