windows下解决 go get golang.org/x 包失败

问题描述

当我们使用go get, go run, go build等相关命令时下载golang.org/x/...这样的包时,可能出现下载失败的情况:

go: golang.org/x/[email protected]: unrecognized import path "golang.org/x/text" (https fetch: Get https://golang.org/x/text?go-get=1: dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connected party did not properlyrespond after a period of time, or established connection failed because connected host has failed to respond.)

解决方法

go modules + goproxy

从 Go 1.11 版本开始,新增 go modules 用于解决包依赖管理问题。

关于 go modules 的知识点,参考:

1、Go1.1.1新功能module的介绍及使用

2、Introduction to Go Modules

3、Go 1.11 Modules 官方说明文档

使用go mod 管理项目,不必把项目放到$GOPATH目录下,你可以把项目代码移动到硬盘的任意目录下(注意如果你的代码库在$GOPATH目录中,go modules功能是默认不会开启的)。对于项目使用go mod模式(即使用go mod init 初始化过项目的),且项目目录不在$GOPATH目录下。使用goproxy来解决下载包超时问题。

通过设置GOPROXY环境变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。这里感谢http://goproxy.io/这个开源项目。

windows下解决 go get golang.org/x 包失败_第1张图片
image.png

对于使用vscode开发go项目的同学,可以下载微软的PowerShell(可理解为升级版的cmd.exe,win7用户需手动下载,win10用户自带)。附下载地址

windows下解决 go get golang.org/x 包失败_第2张图片
image.png

在PowerShell中设置GOPROXY环境变量 $env:GOPROXY = "https://goproxy.io"
windows下解决 go get golang.org/x 包失败_第3张图片
image.png

再在项目下按需 go rungo build等即可成功下载之前超时的第三方包

对于使用goland IDE的同学

windows下解决 go get golang.org/x 包失败_第4张图片
image.png

如下设置后, 重启IDE,打开 Teminal后再项目根目录下按需go run或go build等即可成功下载之前超时的第三方包
windows下解决 go get golang.org/x 包失败_第5张图片
image.png

``

你可能感兴趣的:(windows下解决 go get golang.org/x 包失败)