我们在githup等一些第三方去拉取一些包的话,可能要拉取很久或者是根本无法访问,因此我们在go项目中需要取设置一个代理(也就是就是设置GOPROX环境变量),一般是设置国内的代理,从代理服务器上去拉取。
设置Go语言的环境变量的指令:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
在GoLand控制台执行go get download在执行下载mod报错:
go: module github.com/gin-gonic/gin: Get "goproxy.cn.direct/github.com/…": dial tcp: lookup goproxy.cn.direct: no such host 报错信息是连接不上官方网址,可是我明明走了代理不访问官方网址,走goproxy.cn 的啊。开始查找原因(其实检查下网址这个时候是可以发现问题了的)。
打开cmd,用go env 命令查看:
然后在GoLand控制台执行go env:
对比发现两个GOPROXY的值不一样,在GoLand控制台的GOPROXY的值是goproxy.cn.direct ,后缀应为',direct'而非'.direct',是原先创建项目的时候填错了。
于是重新设置代理地址,当我在GoLand控制台设置代理时GoLand报错:
warning: go env -w GOPROXY=... does not override conflicting OS environment variable
后来发现是是因为项目创建时设置了这个值,在环境变量已经中有了这个值,也在goland的环境变量中找到了这个原先创建Go项目设置的环境变量,把它删除,保存,重启GoLand后。
在Terminal界面重新设置
go env -w GOPROXY=https://goproxy.cn,direct
然后就可以执行go get download了。
或者将goland的环境变量改正,保存,再重启goland,也可正常执行download。