Vscode 安装go环境中遇到的坑!

环境安装

环境windows下安装go,参考 docs.studygolang.com/doc/install.

然后安装vscode官方插件go。需要依赖一些go的插件,再使用的过程中会提示安装:Go tools that the Go extension depends on · Microsoft/vscode-go Wiki,但是直接安装的话是会失败。

参考这篇文章之后,成功安装vscode中go的相关插件 - HackerVirus - 博客园,安装成功了。失败的原因,主要是编译的时候依赖的库没找到,可以自己下载然后移动到相应的路径下。安然重新启动vscode自动安装行了。

遇到问题

但是最后有一个工具 github.com\derekparker\delve\cmd\dlv\, 一直安装失败。

PS C:\Go\src> go install .\github.com\derekparker\delve\cmd\dlv\
crypto\tls\cipher_suites.go:18:2: cannot find package "golang_org/x/crypto/chacha20poly1305" in any of:
        C:\Go\src\golang_org\x\crypto\chacha20poly1305 (from $GOROOT)
        C:\Users\talen\go\src\golang_org\x\crypto\chacha20poly1305 (from $GOPATH)
crypto\tls\key_agreement.go:20:2: cannot find package "golang_org/x/crypto/curve25519" in any of:
        C:\Go\src\golang_org\x\crypto\curve25519 (from $GOROOT)
        C:\Users\talen\go\src\golang_org\x\crypto\curve25519 (from $GOPATH)
net\http\h2_bundle.go:46:2: cannot find package "golang_org/x/net/http2/hpack" in any of:
        C:\Go\src\golang_org\x\net\http2\hpack (from $GOROOT)
        C:\Users\talen\go\src\golang_org\x\net\http2\hpack (from $GOPATH)
net\http\h2_bundle.go:47:2: cannot find package "golang_org/x/net/idna" in any of:
        C:\Go\src\golang_org\x\net\idna (from $GOROOT)
        C:\Users\talen\go\src\golang_org\x\net\idna (from $GOPATH)
net\http\h2_bundle.go:48:2: cannot find package "golang_org/x/net/lex/httplex" in any of:
        C:\Go\src\golang_org\x\net\lex\httplex (from $GOROOT)
        C:\Users\talen\go\src\golang_org\x\net\lex\httplex (from $GOPATH)
net\http\transport.go:32:2: cannot find package "golang_org/x/net/proxy" in any of:
        C:\Go\src\golang_org\x\net\proxy (from $GOROOT)
        C:\Users\talen\go\src\golang_org\x\net\proxy (from $GOPATH)

复制代码

一开始以为也是库没下载,然后用前面的方式下载到GOPATH,GOROOT下,但是还是会一直出错。参考了这篇文章:

看到这个才知道,原来crypto这些库是官方自带的,最后才发现GOROOT/src路径下貌似没有vender,在pkg下面有,于是重新安装一遍,再次运行就ok了。

The errors that mention "cannot find package" are looking for some packages that are vendored in ~/godev/src/vendor/golang_net/.... However, the vendoring support added in 1.5/1.6 only works when the package is inside the GOPATH or GOROOT. Your godev installation is not (and should not be) inside GOPATH and GOROOT is pointing to your 1.8.1 install.

搜了好多好多的弯路,google几乎搜不带多少答案,在github/golang下面搜issue,也没搜到,windows下几乎没有相关的issue。

按F5一键调试:

其他参考

go - non-standard import in standard package windows - Stack Overflow:

在中国网络环境下获取Golang.org上的Golang Packages - Golang中国

标准包是在GOROOT下面,第三方包是在GOPATH下面的: go - Error: Non-standard import "gopkg.in/yaml.v2" in standard package - Stack Overflow

新手求助 为什么不能加载包 我只是想做一个小爬虫 代码没有语法错误 - Go语言中文网 - Golang中文社区

go get 失败-CSDN论坛

从这个得知手动安装包的方式: 下载第三方包 - Golang中国

转载于:https://juejin.im/post/5a6218ddf265da3e2c382df6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值