刚使用jupyter notebook的时候,把之前写的py脚本导了进去,一运行,发现了报了以下的错误:
usage: ipykernel_launcher.py [-h] [--cfg CFG] [--device DEVICE]
ipykernel_launcher.py: error: unrecognized arguments: -f /project/.local/share/jupyter/runtime/kernel-e24ff4da-c615-4d49-8e70-87a7bec2f9e7.json An exception has occurred, use %tb to see the full traceback
网上搜索一下,发现是代码使用了argparse模块导致出现这个错误的。一个普通代码定义模式如下:
parser = argparse.ArgumentParser()
parser.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
args = parser.parse_args()
print(args)
这样定义就会出现上述的错误。
使用参数dict的方式替换argparse模块,即注释或者删除掉这些行
# parser = argparse.ArgumentParser()
# parser.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
# args = parser.parse_args()
# print(args)
# 使用dict方式
args={"device": "0"}
使用方法一要修改代码,实在太麻烦了,有没有更简单的方式啊,有,就是使用下面的语句进行替换:
parser = argparse.ArgumentParser()
parser.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
# args = parser.parse_args()
args =parser.parse_known_args()[0]
print(args)