golang在go get时提示xx cannot download,xxx is a GOROOT, not a GOPATH. For more details see: 'go help ...

拉风月 · · 2132 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

新换了电脑,把之前的go代码全拷贝了过来,顺便升了个级,在设置完GOPATH和GOROOT后,发现运行go version已经没问题了,是最新版本,但是当想下载一个新的包时,提示我我设置的GOPATH是GOROOT.

go get github.com/akavel/rsrc

package github.com/akavel/rsrc: cannot download, F:\GoPath is a GOROOT, not a GOPATH. For more details see: 'go help gopath'

我当时以为是设置的时候翻车了,在我仔细对照了几次配置文件后,发现并没有问题.本着"程序永远不会出错,错的一定是我,找不到错就人机对骂"的原则,我又从头走了几遍流程,问题还是没解决,只好去网上找,网上大多数都是说怎么配置gopath和goroot,或者说不要配置成一个目录,我的goroot和gopath都不在同一个磁盘下,显然不能解决我的问题.

随后找到一篇stackoverflow的文章,下面是链接和内容:

https://stackoverflow.com/questions/42809990/go-get-cannot-download-home-azhukov-go-is-a-goroot-not-a-gopath

"This error is caused by the go tool detecting a Go installation in your GOPATH. It's not telling you that your GOPATH is the GOROOT (that's a different message), it's telling your GOPATH looks like a GOROOT.

Cleaning out your GOPATH and running go get again will fix the error."

翻译一下就是这个错误除了说我们的GOPATH是GOROOT以外,还有一种解释,就是"我们的GOPATH看起来像GOROOT",清理一下GOPATH再运行.

这样就大概有思路了,我把我的GOPATH和真正的GOROOT中的src目录对照了一下,发现有很多目录是相同的,这是因为之前的GOPATH配置的不规范(我也不知道当时是啥情况,毕竟谁都有第一次).然后很明显的,我把GOPATH的src和GOROOT的src中的全部相同目录都删除掉,就可以执行go get了.

本着方便大家,我又尝试最小删除重复目录,最后发现,只要删除GOPATH下src下的cmd目录,就可以了.

结论:删除GOPATH中src目录中的cmd目录,再执行go get -v xxxxx


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2132 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传