jupyter使用argparse包

遇到的问题:

import argparse
parser = argparse.ArgumentParser(description='Evaluate PERCH clustering.')
parser.add_argument('--input', '-i', type=str, help='Path to the dataset.')
parser.add_argument('--outdir', '-o', type=str,help='the output directory')
args = parser.parse_args()

显示以下错误: 

 

usage: ipykernel_launcher.py [-h] [--input INPUT] [--outdir OUTDIR]
                             [--algorithm ALGORITHM] [--dataset DATASET]
                             [--max_leaves MAX_LEAVES] [--clusters CLUSTERS]
                             [--pick_k PICK_K]
                             [--exact_dist_thres EXACT_DIST_THRES]

ipykernel_launcher.py: error: unrecognized arguments: -f C:\Users\Administrator\AppData\Roaming\jupyter\runtime\kernel-b04ae2d4-0e28-4ca2-b3fb-342268b248d6.json

An exception has occurred, use %tb to see the full traceback.

SystemExit: 2

C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py:2870: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
  warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)

问题分析 :

由于在jupyter notebook中,args不为空,可以查看系统环境变量,大概是下面形式:

import sys
sys.argv
['C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py',
 '-f',
 'C:\\Users\\Administrator\\AppData\\Roaming\\jupyter\\runtime\\kernel-b04ae2d4-0e28-4ca2-b3fb-342268b248d6.json']

可以看出,错误中的-f /…来自这里,虽然args默认参数为None,但是实质为args = _sys.argv[1:] 
所以在jupyter中,可以查看自己需要的系统环境变量,然后以list的数据形式传参给args。即:

args = parser.parse_args(args=[])


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值