Go项目本地包导入报错:package myproject/pkg/api不在标准库
问题解决:Go模块导入本地包报错
问题根源
你初始化Go模块时错误地将myproject/cmd/myapp作为模块路径,但内部包pkg/api的导入路径是基于项目根路径myproject的,导致Go模块系统无法匹配到对应包的位置。
解决步骤
1. 修正模块路径
有两种方式修改:
- 方式一:重新初始化模块
删除现有go.mod文件,回到项目根目录重新初始化:rm ~/myproject/go.mod cd ~/myproject && go mod init myproject - 方式二:直接编辑go.mod
打开~/myproject/go.mod,将第一行的module myproject/cmd/myapp修改为:module myproject
2. 确认导入路径
确保main.go中的导入语句保持如下:
import "myproject/pkg/api"
3. 测试运行
回到项目根目录执行:
go run cmd/myapp/main.go
或者进入cmd/myapp目录运行:
cd ~/myproject/cmd/myapp && go run main.go
补充说明
Go模块的初始化路径是整个项目的根标识,项目内所有内部包的导入路径都基于这个根路径。不要用子目录作为模块初始化路径,除非你要将该子目录作为独立的子模块来维护。
内容的提问来源于stack exchange,提问作者RudeusGreyrat
相关产品推荐
相关产品推荐

