VSCode 安装 Go Tools 失败的解决方法

2019/05/20 Golang 共 2523 字,约 8 分钟

VSCode 通过安装插件可以轻松进行 Js Python 等多种语言的开发,但安装 Go 的一些插件时会提示失败,最初参照网上的一些方法解决了,但最近把 go 版本升到了 1.13,出现了新的错误,记录一下解决办法。

在 VSCode 中使用快捷键Cmd + Shift + P,输入Go会显示Go:Install/Update Tools,点击安装,VSCode 可能会输出下面的错误

Installing github.com/nsf/gocode SUCCEEDED
Installing github.com/uudashr/gopkgs/cmd/gopkgs SUCCEEDED
Installing github.com/ramya-rao-a/go-outline FAILED
Installing github.com/acroca/go-symbols FAILED
Installing golang.org/x/Tools/cmd/guru FAILED
Installing golang.org/x/Tools/cmd/gorename FAILED
Installing github.com/fatih/gomodifytags SUCCEEDED
Installing github.com/haya14busa/goplay/cmd/goplay SUCCEEDED
Installing github.com/josharian/impl FAILED
Installing github.com/rogpeppe/godef SUCCEEDED
Installing sourcegraph.com/sqs/goreturns FAILED
Installing github.com/golang/lint/golint FAILED
Installing github.com/cweill/gotests/... FAILED
Installing github.com/derekparker/delve/cmd/dlv SUCCEEDED

解决办法1

Clone 此项目,把bin中的文件放入你的GOPATH/bin中,之后重启 VSCode 即可。

解决办法2

看报错信息会发现这些包依赖golang.org上的一些包,而golang.org在国内是无法访问的,所以安装失败了。查看GOPATH目录后发现 src 目录下,发现有一部分包是下载下来的,所以只要把那些无法下载的包手动拷到相应位置就可以了。

GOPATH/src/golang.org/xgit clone https://github.com/golang/Tools.git, 然后打开终端,执行下面的命令:

go install github.com/ramya-rao-a/go-outline

go install github.com/acroca/go-symbols

go install golang.org/x/Tools/cmd/guru

go install golang.org/x/Tools/cmd/gorename

go install github.com/josharian/impl

go install github.com/rogpeppe/godef

go install github.com/sqs/goreturns

go install github.com/golang/lint/golint

go install github.com/cweill/gotests/gotests

go install github.com/ramya-rao-a/go-outline

go install github.com/acroca/go-symbols

go install golang.org/x/Tools/cmd/guru

go install golang.org/x/Tools/cmd/gorename

go install github.com/josharian/impl

go install github.com/rogpeppe/godef

go install github.com/sqs/goreturns

go install github.com/golang/lint/golint

go install github.com/cweill/gotests/gotests

解决办法3

最近把 Go 版本升级到 1.13 后,打开 VSCode 后提示相关的一些插件也需要升级,点击升级后又报错了,和之前 1.12 一样,还是提示找不到golang.org上的包。

但查看GOPATH目录后发现 src 目录下并没有新增这些插件包,仔细查看后发现这些 Tools 的包被放在了GOPATH/pkg/mod目录下,用过go mod的应该知道,这个目录是用来放go mod安装的包,也就是说 VSCode 改用go mod来管理第三方包了。了解了问题所在,解决就比较简单了。只需要在GOPATH/pkg/mod/golang.org/xgit clone https://github.com/golang/Tools.git,然后进入一个go mod管理的目录执行上面那些命令。

go install github.com/ramya-rao-a/go-outline
...
...
go install github.com/cweill/gotests/gotests

Q&A

使用 go mod 后还需要 GOPATH 吗?

我们不需要再去关注GOPATH了。但go mod其实还是依赖GOPATH的,go mod中安装的包位置在GOPATH/pkg/mod/下,在go mod管理下的目录执行代码会根据go.mod文件去 GOPATH/pkg/mod下查找对应的包

go install 是什么?

go install其实就是先去对应目录go build,如果是 main 包,把 build 生成的可执行文件再移动到GOPATH/bin下。

为什么上面的解决办法执行 go install 位置不同?

go mod管理目录下执行go install命令会去GOPAHT/src下找这些包,在go mod管理的目录下执行go install会去GOPATH/pkg/mod目录下查找对应的包。

文档信息

Search

    Table of Contents