C:\Users\admin\AppData\Local\Android\Sdk\ndk\25.2.9519653\simpleperf>python report_html.py Traceback (most recent call last): File "report_html.py", line 1040, in <module> main() File "report_html.py", line 988, in main args = get_args() File "report_html.py", line 982, in get_args parser.add_report_lib_options() File "C:\Users\admin\AppData\Local\Android\Sdk\ndk\25.2.9519653\simpleperf\simpleperf_utils.py", line 1028, in add_report_lib_options action=argparse.BooleanOptionalAction, default=default_show_art_frames, AttributeError: module 'argparse' has no attribute 'BooleanOptionalAction 怎么修改
时间: 2023-07-21 12:20:18 浏览: 285
你可以尝试使用以下两种方法之一来解决这个问题:
1. 升级 argparse 模块
在命令行中使用以下命令来升级 argparse 模块:
```
pip install --upgrade argparse
```
2. 修改 simpleperf 工具源代码
打开 report_html.py 文件,找到第 982 行,将 `argparse.BooleanOptionalAction` 改为 `bool`,如下所示:
```
parser.add_argument('--show-art-frames', dest='show_art_frames', action='store', type=bool, default=default_show_art_frames, help='Include Java frames in call graph. Default is %s.' % default_show_art_frames)
```
然后保存文件并重新运行该脚本。
请注意,在修改源代码之前最好备份原始文件,以防止修改错误导致更严重的问题。
相关问题
C:\Users\admin\AppData\Local\Android\Sdk\ndk\25.2.9519653\simpleperf>python report_html.py Traceback (most recent call last): File "report_html.py", line 1040, in <module> main() File "report_html.py", line 988, in main args = get_args() File "report_html.py", line 982, in get_args parser.add_report_lib_options() File "C:\Users\admin\AppData\Local\Android\Sdk\ndk\25.2.9519653\simpleperf\simpleperf_utils.py", line 1028, in add_report_lib_options action=argparse.BooleanOptionalAction, default=default_show_art_frames, AttributeError: module 'argparse' has no attribute 'BooleanOptionalAction'
根据你提供的信息,看起来你正在运行 Android NDK 中的 simpleperf 工具,并且在运行 report_html.py 脚本时出现了 AttributeError 错误。这个错误的原因可能是因为 argparse 模块中没有 BooleanOptionalAction 属性。你可以尝试更新 argparse 模块,或者查看你所使用的 simpleperf 版本是否与 argparse 模块存在兼容性问题。另外,你也可以尝试在相关论坛或社区中寻求解决方案。
C:\android-ndk-r25c-windows\android-ndk-r25c\simpleperf>python report_html.py File "report_html.py", line 41 def __init__(self, output_path: Union[Path, str]): ^ SyntaxError: invalid syntax
这个错误是因为你使用的 Python 版本不支持类型提示语法。在该代码中,output_path 参数使用了类型提示语法,但是你 Python 版本不支持这个语法。
解决方法是升级 Python 版本到 3.5 或更高版本,因为类型提示语法是在 Python 3.5 中引入的。如果你不想升级 Python 版本,可以将所有的类型提示语法都删掉,这样代码就可以在低版本的 Python 中运行了。
阅读全文