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

使用PyDriller获取提交中文件最后修改行出现AttributeError如何解决

问题原因

你遇到的报错来自两个核心错误:

  • get_commits_last_modified_lines 不是ModifiedFile类的成员方法,它是Commit类的方法,调用时需要将修改文件对象作为参数传入
  • 你的代码没有添加方法调用的括号(),即使方法归属正确,写get_commits_last_modified_lines只会被识别为访问属性,而非执行方法
修正后代码
for commit in Repository('testing').traverse_commits():
    for modified_file in commit.modified_files:
        # 从commit对象调用方法,传入当前修改的文件
        last_modify_info = commit.get_commits_last_modified_lines(modified_file)
        print(last_modify_info)
额外注意事项
  • 确认你安装的PyDriller为2.0及以上版本,1.x旧版本不存在该方法,版本过低可执行pip install --upgrade pydriller升级
  • 该方法返回字典结构:键为修改的行号,值为对应行最后一次修改的提交对象,你可以直接从返回结果中提取提交归属、行所属代码结构等相关信息
  • 如果仅需要处理单个指定提交,不需要遍历仓库所有提交,可以直接构造指定哈希的Commit对象后执行上述逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:15:05