无需修改代码,解决ipykernel_launcher.py: error: unrecognized arguments: -f /home/报错

IDE当中代码使用了parser.parse_args(),当在jupyter下调用时出错。

报错:

usage: ipykernel_launcher.py [-h] [--data_dir DATA_DIR]
                             [--output_dir OUTPUT_DIR]
                             [--embedding_path EMBEDDING_PATH]
                             .....

ipykernel_launcher.py: error: unrecognized arguments: -f /home/xxx/.local/share/jupyter/runtime/kernel-0fad9201-af20-4945-86b4-eeafe5b0d8b2.json
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2

这是因为调用parser.parse_args()会读取系统参数:sys.argv[],命令行调用时是正确参数,而在jupyter notebook中调用时,sys.argv的值为ipykrnel_launcher.py:

['/home/xxx/anaconda3/envs/pt/lib/python3.8/site-packages/ipykernel_launcher.py',
 '-f',
 '/home/xxx/.local/share/jupyter/runtime/kernel-0fad9201-af20-4945-86b4-eeafe5b0d8b2.json']

解决方案有两种,一种需要修改代码,第二种只需要在jupyter中设置sys.argv。

一、修改代码

将parser.parse_args() 改为 parser.parse_known_args()[0]

import argparse
parser = argparse.ArgumentParser()
args = parser.parse_known_args()[0]

需要修改代码,不优雅。

修改系统参数

在jupyter中设置sys.argv。

比如输入命令行为:

python run.py

其sys.argv为:

['run.py']

提示:也可以在运行代码中添加print(sys.argv)获取,形式如下:

import sys
print(sys.argv)

在jupyter中添加如下代码:

import sys
sys.argv = ['run.py']

代码中的,‘run.py’修改为当前运行代码所需的sys.argv

强迫症不想改密码,可以用第二种方法试试。

[En]

Obsessive-compulsive disorder does not want to change the code, you can use the second method to try.

Original: https://blog.csdn.net/wmq104/article/details/123534597
Author: 青萍之默
Title: 无需修改代码,解决ipykernel_launcher.py: error: unrecognized arguments: -f /home/报错



相关阅读

Title: 已解决ModuleNotFoundError: No module named ‘paddle‘

已解决(paddleocr导包报错)ModuleNotFoundError: No module named ‘paddle’

文章目录

报错代码

粉丝群一个小伙伴想用cv2和paddleocr 识别图像(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下:

import cv2
from paddleocr import PPStructure, draw_structure_result, save_structure_res

table_engine = PPStructure(show_log=True)

img_path = './.png'
img = cv2.imread(img_path)
result = table_engine(img)
print(result)
save_structure_res(result, 'where', 'ex01')

可以看出导包没有任何问题:

无需修改代码,解决ipykernel_launcher.py: error: unrecognized arguments: -f /home/报错

但是运行程序的时候却发生了报错,报错信息截图:

无需修改代码,解决ipykernel_launcher.py: error: unrecognized arguments: -f /home/报错

报错翻译

报错信息翻译

模块找不到报错:没有名为”paddle”的模块

报错原因

报错原因

没有paddle模块,于是我推测可能是因为想要使用paddle模块还需要其他相关联的第三方模块,小伙伴按照下面的命令安装即可解决问题

解决方法

在翻阅资料的时候发现安装paddle这个模块是还需要安装的是 paddlepaddle ,用pip执行下面命令安装即可

pip install paddlepaddle

安装后再次运行程序成功了:

无需修改代码,解决ipykernel_launcher.py: error: unrecognized arguments: -f /home/报错

帮忙解决

本文已收录于:《告别Bug》专栏

本专栏用于记录学习和工作中遇到的各种疑难Bug问题,以及粉丝群里小伙伴提出的各种问题,文章形式:报错代码 + 报错翻译 + 报错原因 + 解决方法,包括程序安装、运行程序过程中等等问题,订阅专栏+关注博主后如遇到其他问题可私聊帮忙解决!!!

Original: https://blog.csdn.net/yuan2019035055/article/details/126344220
Author: 无 羡ღ
Title: 已解决ModuleNotFoundError: No module named ‘paddle‘

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/285103/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载