Mac 解决VSCode安装Go tools失败的问题

今天打算学习一下 Go,在安装完VS Code 后,编写第一个go程序保存代码时,IDE 提示如下错误:

image.png

点击 install all 按钮安装这些扩展时,报错:

Installing 9 tools at /var/www/go/bin in module mode.
  go-outline
  gotests
  gomodifytags
  impl
  goplay
  dlv
  staticcheck
  gopls
  goimports

Installing github.com/ramya-rao-a/go-outline@latest FAILED
{
 "killed": false,
 "code": 1,
 "signal": null,
 "cmd": "/usr/local/go/bin/go install -v github.com/ramya-rao-a/go-outline@latest",
 "stdout": "",
 "stderr": "go: github.com/ramya-rao-a/go-outline@latest: module github.com/ramya-rao-a/go-outline: Get \"https://proxy.golang.org/github.com/ramya-rao-a/go-outline/@v/list\": dial tcp 142.251.42.241:443: i/o timeout\n"
}
Installing github.com/cweill/gotests/gotests@latest FAILED
{
 "killed": false,
 "code": 1,
 "signal": null,
 "cmd": "/usr/local/go/bin/go install -v github.com/cweill/gotests/gotests@latest",
 "stdout": "",
 "stderr": "go: github.com/cweill/gotests/gotests@latest: module github.com/cweill/gotests/gotests: Get \"https://proxy.golang.org/github.com/cweill/gotests/gotests/@v/list\": dial tcp 142.251.42.241:443: i/o timeout\n"
}
Installing github.com/fatih/gomodifytags@latest FAILED
{
 "killed": false,
 "code": 1,
 "signal": null,
 "cmd": "/usr/local/go/bin/go install -v github.com/fatih/gomodifytags@latest",
 "stdout": "",
 "stderr": "go: github.com/fatih/gomodifytags@latest: module github.com/fatih/gomodifytags: Get \"https://proxy.golang.org/github.com/fatih/gomodifytags/@v/list\": dial tcp 142.251.42.241:443: i/o timeout\n"
}
Installing github.com/josharian/impl@latest FAILED
{
 "killed": false,
 "code": 1,
 "signal": null,
 "cmd": "/usr/local/go/bin/go install -v github.com/josharian/impl@latest",
 "stdout": "",
 "stderr": "go: github.com/josharian/impl@latest: module github.com/josharian/impl: Get \"https://proxy.golang.org/github.com/josharian/impl/@v/list\": dial tcp 142.251.42.241:443: i/o timeout\n"
}
Installing github.com/haya14busa/goplay/cmd/goplay@latest FAILED
{
 "killed": false,
 "code": 1,
 "signal": null,
 "cmd": "/usr/local/go/bin/go install -v github.com/haya14busa/goplay/cmd/goplay@latest",
 "stdout": "",
 "stderr": "go: github.com/haya14busa/goplay/cmd/goplay@latest: module github.com/haya14busa/goplay/cmd/goplay: Get \"https://proxy.golang.org/github.com/haya14busa/goplay/cmd/goplay/@v/list\": dial tcp 142.251.42.241:443: i/o timeout\n"
}
Installing github.com/go-delve/delve/cmd/dlv@latest FAILED
{
 "killed": false,
 "code": 1,
 "signal": null,
 "cmd": "/usr/local/go/bin/go install -v github.com/go-delve/delve/cmd/dlv@latest",
 "stdout": "",
 "stderr": "go: github.com/go-delve/delve/cmd/dlv@latest: module github.com/go-delve/delve/cmd/dlv: Get \"https://proxy.golang.org/github.com/go-delve/delve/cmd/dlv/@v/list\": dial tcp 142.251.42.241:443: i/o timeout\n"
}
Installing honnef.co/go/tools/cmd/staticcheck@latest FAILED
{
 "killed": false,
 "code": 1,
 "signal": null,
 "cmd": "/usr/local/go/bin/go install -v honnef.co/go/tools/cmd/staticcheck@latest",
 "stdout": "",
 "stderr": "go: honnef.co/go/tools/cmd/staticcheck@latest: module honnef.co/go/tools/cmd/staticcheck: Get \"https://proxy.golang.org/honnef.co/go/tools/cmd/staticcheck/@v/list\": dial tcp 142.251.42.241:443: i/o timeout\n"
}
Installing golang.org/x/tools/gopls@latest FAILED
{
 "killed": false,
 "code": 1,
 "signal": null,
 "cmd": "/usr/local/go/bin/go install -v golang.org/x/tools/gopls@latest",
 "stdout": "",
 "stderr": "go: golang.org/x/tools/gopls@latest: module golang.org/x/tools/gopls: Get \"https://proxy.golang.org/golang.org/x/tools/gopls/@v/list\": dial tcp 142.251.42.241:443: i/o timeout\n"
}
Installing golang.org/x/tools/cmd/goimports@latest FAILED
{
 "killed": false,
 "code": 1,
 "signal": null,
 "cmd": "/usr/local/go/bin/go install -v golang.org/x/tools/cmd/goimports@latest",
 "stdout": "",
 "stderr": "go: golang.org/x/tools/cmd/goimports@latest: module golang.org/x/tools/cmd/goimports: Get \"https://proxy.golang.org/golang.org/x/tools/cmd/goimports/@v/list\": dial tcp 142.251.42.241:443: i/o timeout\n"
}

9 tools failed to install.

失败原因

golang.org 在国内由于一些众所周知的原因无法直接访问,而go get在获取gocodego-defgolint等插件依赖工具的源码时,需要从 golang.org 上拉取部分代码至GOPATH,自然就导致了最后这些依赖于 golang.org 代码的依赖工具安装失败。

解决办法

  1. 首先进入GOPATH/src/目录(不知道自己GOPATH路径的,在终端输入go env命令查看)
    image.png
  2. 创建golang.org/x目录。
#创建 golang.org/x 目录
mkdir -p golang.org/x
#进入新建目录内
cd golang.org/x
  1. 使用下列命令下载插件依赖工具的源码
git clone https://github.com/golang/tools.git tools
Cloning into 'tools'...
remote: Enumerating objects: 62854, done.
remote: Counting objects: 100% (27/27), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 62854 (delta 3), reused 25 (delta 2), pack-reused 62827
Receiving objects: 100% (62854/62854), 28.92 MiB | 13.25 MiB/s, done.
Resolving deltas: 100% (45394/45394), done.

git clone命令执行完毕后,所需的工具源码就都保存在tools目录中。

  1. 进入GOPATH目录,根据之前的安装失败提示信息安装对应的依赖工具
go install  -v github.com/ramya-rao-a/go-outline@latest
go install  -v github.com/cweill/gotests/gotests@latest
go install  -v github.com/fatih/gomodifytags@latest
go install  -v github.com/josharian/impl@latest
go install  -v github.com/haya14busa/goplay/cmd/goplay@latest
go install -v github.com/go-delve/delve/cmd/dlv@latest
go install -v honnef.co/go/tools/cmd/staticcheck@latest
go install -v golang.org/x/tools/gopls@latest
go install -v golang.org/x/tools/cmd/goimports@latest

image.png

插件安装完毕后重启 VS Code,插件就可以正常使用了。

go-tools安装包下载
提取码: ihu5
安装方法参考文件夹中的 README.md

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值