package ~ is not in GOROOT (/usr/local/go/bin/src/~)
问题描述
vscode连接虚拟机运行go项目(使用go mod管理),通过vscode的插件code runner无法运行,出现大量类似“package xx is not in GOROOT”
解决方法
- 检查go env中GOROOT的路径是否有问题(一般都是/usr/local/go)
- 查看/usr/local/go/bin/src/目录下是否存在该包
到这一步出现了问题,根本就没有这个目录。我简单查看了一下,正确的目录在/usr/local/go/src,根本不再bin下面。可恶!那就是路径的问题。使用go run语句能正常运行项目,就是插件用不了。
修改vscode的配置(草率了家人们,这个方法不能治本,建议采用下面的方法)
文件-》首选项-》设置
选择虚拟机栏的goroot,点击“在settings.json中编辑”,输入goroot的路径,然后保存就行
- 修改go env内部的配置
- 输入go env
- 打开GOENV设置的文件路径(ps:先cat一下是否存在,不要上来直接就vim,习惯不好)
果然,就是这个GOENV内重新设置了GOROOT,导致路径有问题- 修改为正确的路径 /usr/local/go/(这是我找到的路径,建议根据报错自己找找在哪)
- 保存(切记)