登录
首页 >  Golang >  Go问答

无法在更改 process.env 时切换 Go 版本

来源:stackoverflow

时间:2024-03-02 23:24:26 322浏览 收藏

本篇文章给大家分享《无法在更改 process.env 时切换 Go 版本》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

我使用的是m2,并使用brew安装了go 1.20。现在我想在 vscode 中切换 go 版本:

但是失败并出现以下警告消息:

switching go version when process.env["goroot"] is set is unsupported.

.zshrc 中删除 goroot 后,goroot 已从 env 中消失。但它仍然存在于go env中。如何从 go env 中删除 goroot?我也尝试从 ${home}/library/application support/go/env 中删除它,但仍然无法切换 go 版本。

➜  ~ env |grep GOROOT
➜  ~ go env GOROOT
/usr/local/go

正确答案


选择 go 环境是 vscode-go 扩展的一项功能(请参阅管理您的 go 版本)。

如果从 .zshrc 中删除 goroot 后,env 的输出 | grep goroot 为空,那么您已经做了正确的事情来使该功能正常工作。

请记住,vscode 不会立即观察到更改。需要重启vscode。棘手的是,如果 vscode 由设置了 goroot 的进程启动,vscode 仍然会看到它。因此,为了安全起见,也许最好重新启动系统。

现在我必须在settings.json中设置“go.goroot”来更改go版本。

您应该在重新启动 vscode 或重新启动系统后删除此配置。否则,您将收到此警告:

Switching Go version when "go.goroot" is set is unsupported.

但它仍然存在于go env中。如何从 go env 中删除 goroot

这是预期的。您不需要也不可能从 go env 的输出中删除它。

go env goroot 显示 goroot 的有效设置。它显示来自以下来源之一的值(优先级较高的第一个):

  1. 从当前 go 命令推断的路径。例如,如果您使用 go install golang.org/dl/go1.19@latest 安装了 go1.19,则运行 go1.19 env goroot 将为您提供类似 $home/sdk/go1.19 的路径。
  2. goroot 环境变量;
  3. go环境配置文件中设置的值(go env genv显示配置文件的路径)。
  4. path 部分中找到的 go 命令推断出的路径(与上面的第 1 点相比,这有点令人困惑)。

以上就是《无法在更改 process.env 时切换 Go 版本》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>