升级至Go 1.10后go get报错:无法识别导入路径如何解决?
解决go get拉取google.golang.org/grpc失败的问题
针对你遇到的两种错误(未代理时连接超时,设代理后出现proxyconnect tcp: EOF),我给你整理几个针对性的解决方案,你可以逐一尝试:
1. 配置国内可用的Go模块代理
直接访问google.golang.org在国内通常有网络限制,推荐使用国内的Go代理服务,不需要额外翻墙:
执行以下命令配置代理:
go env -w GOPROXY=https://goproxy.cn,direct # 如果你的项目里没有私有仓库需要拉取,下面这条可以忽略 go env -w GOPRIVATE=*.your-private-domain.com
配置完成后,再尝试执行:
go get -u google.golang.org/grpc
2. 清理Go模块缓存
之前拉取失败的缓存可能会干扰后续操作,先清理缓存:
go clean -modcache
清理完成后再重新执行go get命令。
3. 手动替换grpc包的源
实际上google.golang.org/grpc是github.com/grpc/grpc-go的官方镜像,你可以通过replace指令直接从GitHub拉取:
在你的项目根目录的go.mod文件中添加以下内容(版本号可以根据需要选择最新版):
replace google.golang.org/grpc => github.com/grpc/grpc-go v1.59.0
然后执行:
go mod tidy
这条命令会自动拉取对应的依赖包。
4. 清理冲突的代理配置
从你的go env输出看,没有显示HTTP_PROXY/HTTPS_PROXY,但有可能之前的代理配置残留导致冲突,执行以下命令清空系统级的代理配置:
go env -w HTTP_PROXY= go env -w HTTPS_PROXY= go env -w NO_PROXY=
清空后再重新配置GOPROXY尝试拉取。
如果以上方法都不行,你可以检查一下你的网络环境是否有防火墙拦截Go的网络请求,或者尝试切换到手机热点网络再测试。
内容的提问来源于stack exchange,提问作者gvij
相关产品推荐
相关产品推荐

