Go新手执行go install遇unexpected directory layout错误求助
解决Go install报错:unexpected directory layout
兄弟,我刚入门Go的时候也踩过这个目录结构的大坑!这个错误本质是Go的依赖管理模式(尤其是传统GOPATH模式)对目录结构有严格要求,咱们一步步来解决:
首选方案:切换到Go Modules(推荐,Go 1.11+支持)
现在Go官方早就推荐用Go Modules来管理依赖了,完全不用纠结GOPATH的目录限制,步骤超简单:
- 打开终端,进入你的项目根目录:
cd D:\BitBucketERN\GO\src\bitbucket.com\ernetworkdev\ern-admin-cadastro-api - 初始化Go模块(把你的项目路径作为模块名):
go mod init bitbucket.com/ernetworkdev/ern-admin-cadastro-api - 让Go自动梳理并下载依赖:
这一步会自动把go mod tidygithub.com/gorilla/handlers这类依赖下载到本地,并生成go.mod和go.sum文件管理版本。 - 最后再执行
go install,应该就能顺利启动了!
备选方案:用传统GOPATH模式解决(不推荐,仅适配旧版本Go)
如果你非要用GOPATH模式,得严格遵守它的目录规则:
- 首先把依赖包放到GOPATH的src目录下,而不是项目的vendor里。执行命令让Go自动下载到正确路径:
这个命令会把包下载到go get github.com/gorilla/handlersD:\BitBucketERN\GO\src\github.com\gorilla\handlers,和你的导入路径完全对应。 - 然后删除项目里的
vendor\github.com\gorilla\handlers目录,避免冲突。 - 再执行
go install,目录结构匹配后就不会报错了。
简单总结下:Go Modules是现在的主流,能帮你省掉超多目录结构的麻烦,新手直接用这个方案准没错!
内容的提问来源于stack exchange,提问作者Gabriel Santos
相关产品推荐
相关产品推荐

