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

AOSP开发中运行aidegen提示dataclasses模块缺失问题求助

解决AOSP aidegen运行时找不到dataclasses模块的问题

问题现象

运行aidegen时触发ModuleNotFoundError: No module named 'dataclasses',即使已经通过pip安装了该模块,无论虚拟环境内外都无法解决:

$: aidegen 
Traceback (most recent call last):
  File "/tmp/Soong.python_4y5nr8sq/__soong_entrypoint_redirector__.py", line 6, in <module>
    runpy._run_module_as_main("aidegen.aidegen_main", alter_argv=False)
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in <module>
    exec(code, run_globals)
  File "/tmp/Soong.python_4y5nr8sq/aidegen/aidegen_main.py", line 50, in <module>
    from aidegen.lib import aidegen_metrics
  File "/tmp/Soong.python_4y5nr8sq/aidegen/lib/aidegen_metrics.py", line 24, in <module>
    from aidegen.lib import common_util
  File "/tmp/Soong.python_4y5nr8sq/aidegen/lib/common_util.py", line 40, in <module>
    from atest import atest_utils
  File "/tmp/Soong.python_4y5nr8sq/atest/atest_utils.py", line 45, in <module>
    from dataclasses import dataclass
ModuleNotFoundError: No module named 'dataclasses'

执行pip安装时显示模块已存在:

$: pip install dataclasses
Requirement already satisfied: dataclasses in <path_to_venv>/venv_3/lib/python3.6/site-packages

原因分析

AOSP的Soong构建系统在运行aidegen时,会创建一个独立的临时Python环境(路径如/tmp/Soong.python_xxxxxx/),这个环境不会加载你系统或虚拟环境中已安装的第三方模块,所以即使本地装了dataclasses也无法被识别。

解决方法

方法1:升级Python到3.7+

dataclasses是Python 3.7及以上版本的标准库,无需额外安装。如果你的AOSP构建环境允许,直接将Python版本升级到3.7或更高,即可彻底解决该问题。

方法2:临时复制dataclasses到Soong临时环境

  1. 先查找dataclasses模块的安装路径:
pip show dataclasses | grep -E "^Location:" | awk '{print $2}'

进入该路径,找到dataclasses文件夹。
2. 运行aidegen触发错误后,复制该文件夹到Soong临时环境目录(替换成实际的临时路径):

cp -r <dataclasses_folder_path> /tmp/Soong.python_4y5nr8sq/

注意:临时目录每次运行aidegen都会变化,此方法仅能临时解决,每次运行都需要重复操作。

方法3:设置PYTHONPATH指定模块路径

在运行aidegen前,设置环境变量让Soong读取你已安装dataclasses的路径:

export PYTHONPATH=<path_to_venv>/venv_3/lib/python3.6/site-packages
aidegen

这样Soong的临时Python环境会加载该路径下的模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:37:54