Python3.6运行grade_analysis.py时more_itertools导入cached_property失败
问题分析与解决方案
命令本身无语法错误
你当前执行的PYTHONPATH=../:. python grade_analysis.py命令语法没问题,PYTHONPATH=../:.已经正确把上级目录和当前目录加入Python模块搜索路径,能确保util.py和grading.py被正常导入,这部分无需调整。
报错根源:依赖版本不兼容
ImportError: more_itertools cannot import cached_property from functools的核心原因是more_itertools版本与Python版本不匹配:
- Python 3.8及以后的版本中,
functools.cached_property是标准库自带的;但旧版more_itertools会尝试自行实现该属性,同时又从functools导入,引发冲突。 - 也可能是你安装的more_itertools版本过新,而课程环境要求的是旧版本,新包的导入逻辑发生了变化。
修复步骤
- 先查看当前环境中more_itertools的版本:
pip show more_itertools - 如果版本不符合课程要求,卸载现有版本后安装指定版本:
(多数ML4T课程会要求pip uninstall -y more_itertools pip install more_itertools==指定版本号more_itertools==8.10.0这类兼容旧导入逻辑的版本) - 若不确定指定版本,可尝试安装兼容Python版本的稳定旧版:
pip install more_itertools<9.0.0
额外检查点
- 确认conda环境已正确激活:执行
conda info --envs,查看当前环境是否带有*标记 - 检查环境中Python版本是否符合课程要求,避免因版本差异引发依赖问题
内容的提问来源于stack exchange,提问作者againstchris
相关产品推荐
相关产品推荐

