Go模块导入失败:无法找到子目录中的package问题求助
Go模块导入报错解决
目录结构
src go.mod lib/migrate migrate.go driver/source local.go
尝试的导入代码
package migrate import ( local "app/lib/migrate/driver/source/local" ) type Migrate struct { }
报错信息
could not import app/lib/migrate/driver/source/local (no required module provides package "app/lib/migrate/driver/source/local")
已确认的信息
- go.mod中声明了
module app - local.go中声明了
package local - 已开启模块模式:
go env -w GO111MODULE=on
解决方法
1. 修正导入路径
Go的包按目录组织,local.go位于src/lib/migrate/driver/source目录下,该目录对应的包路径是app/lib/migrate/driver/source,而非你写的app/lib/migrate/driver/source/local(不存在这个子目录)。修正后的导入代码:
package migrate import ( local "app/lib/migrate/driver/source" ) type Migrate struct { }
2. 确保在模块根目录执行Go命令
模块根目录是src(go.mod所在目录),所有Go命令(如go build、go mod tidy)都需要在src目录下运行,否则Go无法正确识别模块结构。
3. 同步模块依赖
在src目录下运行以下命令,自动整理依赖并确认包路径:
go mod tidy
内容的提问来源于stack exchange,提问作者Văn Hữu
相关产品推荐
相关产品推荐

