Go 1.10执行go get更新依赖失败,提示导入路径无主机名
解决Go 1.10中
unrecognized import path '_/xxx'错误 这个问题的核心原因很明确:Go 1.10还没有正式支持Go Modules(Go Modules在Go 1.11才作为实验特性引入,1.13成为默认),而你把quic-go项目克隆到了GOPATH目录之外的位置(~/Descargas/quic-go)。在Go Modules出现之前,Go的依赖管理要求所有项目必须放在GOPATH/src目录下,并且路径要和项目的导入路径匹配,否则Go会把本地路径解析成_/xxx这种不符合导入规范的格式,从而抛出错误。
下面给你两种可行的解决方法,根据你的需求选择:
方案一:将项目移到GOPATH规范路径下(推荐,适合Go 1.10)
Go 1.10完全依赖GOPATH的目录结构,所以最稳妥的方式是把项目放到正确的位置:
- 先确认你的GOPATH是
/home/delia/go,先创建必要的目录结构(如果不存在的话):mkdir -p /home/delia/go/src/github.com/lucas-clemente - 把你克隆的quic-go项目移动到这个目录下:
mv ~/Descargas/quic-go /home/delia/go/src/github.com/lucas-clemente/ - 进入项目目录,再执行依赖更新命令:
cd /home/delia/go/src/github.com/lucas-clemente/quic-go go get -t -u ./...
这样Go就能正确识别项目的导入路径(github.com/lucas-clemente/quic-go),不会再出现_/xxx的错误。
方案二:启用实验性Go Modules支持(可选,兼容性有限)
虽然Go 1.10不正式支持Modules,但可以通过环境变量开启实验性支持:
- 进入你的quic-go项目目录:
cd ~/Descargas/quic-go - 设置环境变量启用Modules:
export GO111MODULE=on - 执行依赖更新命令:
go get -t -u ./...
⚠️ 注意:Go 1.10的Modules支持是实验性的,可能会遇到一些兼容性问题,比如某些依赖的版本解析异常,所以更推荐方案一。
额外建议
Go 1.10是比较老旧的版本了(发布于2018年),如果你的场景允许,建议升级到Go 1.16或更高版本,这些版本的Modules支持更完善,不需要再依赖GOPATH的目录结构,开发体验会好很多。
内容的提问来源于stack exchange,提问作者dgr
相关产品推荐
相关产品推荐

