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

配置pre-commit添加本地自研包后,pyright仍报导入错误求解决

解决pre-commit pyright钩子无法识别本地自研包的问题

问题分析

pre-commit的每个钩子都会在独立的隔离虚拟环境中运行,你本地全局/项目虚拟环境里安装的package1、package2不会自动被钩子环境识别。你当前在additional_dependencies里用[.package1]的写法不符合pip本地包安装的格式,导致钩子环境没正确安装这两个自研包,pyright自然找不到导入的符号。

解决方案

方案1:修正additional_dependencies的本地包路径写法

把additional_dependencies里的[.package1]、[.package2]改成pip能识别的本地相对路径格式:

repo: https://github.com/RobertCraigie/pyright-python
rev: v1.1.316
hooks:
- id: pyright
  additional_dependencies: [matplotlib, pytest, './package1', './package2']

这样pre-commit在初始化钩子环境时,会自动用pip安装这两个本地包,pyright就能识别到包内的导入。

方案2:通过pyright配置文件指定额外路径

如果方案1无效,可在项目根目录创建pyrightconfig.json文件,手动告诉pyright去哪里找这两个自研包:

{
  "extraPaths": ["./package1", "./package2"]
}

这个配置会让pyright扫描指定路径下的Python包,无需在钩子的依赖里重复安装。

最后验证

修改配置后,先清理pre-commit的旧钩子环境:

pre-commit clean

再运行钩子测试:

pre-commit run --all-files

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:19:58