快疯了,使用 vscode 开发 go,环境变量问题,这个问题一直困扰好久

22 天前
 main1234

使用 go1.21 开发,之前电脑有 1.19 版本

1.21 版本安装到了/Users/zhuxiaoyu/Desktop/go121 目录中

/etc/profile

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
        [ -r /etc/bashrc ] && . /etc/bashrc
fi
export GOROOT=/Users/zhuxiaoyu/Desktop/go121
export GOPATH=/Users/zhuxiaoyu/Desktop/gopath

~/.bash_profile

export GOROOT=/Users/zhuxiaoyu/Desktop/go121
export GOPATH=/Users/zhuxiaoyu/Desktop/gopath
export GOBIN=$GOPATH/bin
export PROTOBUF_HOME=/usr/local/protobuf
export GO111MODULE=auto
PATH=$PATH:$GOBIN:$PROTOBUF_HOME/bin

~/.zshrc

export GOPATH=/Users/zhuxiaoyu/Desktop/gopath
export GOROOT=/Users/zhuxiaoyu/Desktop/go121
export GOBIN=$GOPATH/bin
export PROTOBUF_HOME=/usr/local/protobuf
export GO111MODULE=on
export GETHBIN=/Users/zhuxiaoyu/Desktop/geth/build/bin

go env

GO111MODULE='auto'
GOARCH='amd64'
GOBIN='/Users/zhuxiaoyu/Desktop/gopath/bin'
GOCACHE='/Users/zhuxiaoyu/Library/Caches/go-build'
GOENV='/Users/zhuxiaoyu/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/zhuxiaoyu/Desktop/gopath/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/zhuxiaoyu/Desktop/gopath'
GOPRIVATE=''
GOPROXY='https://goproxy.cn,direct'
GOROOT='/Users/zhuxiaoyu/Desktop/go121'
GOSUMDB=''
GOTMPDIR=''
GOTOOLCHAIN=''
GOTOOLDIR='/Users/zhuxiaoyu/Desktop/go121/pkg/tool/darwin_amd64'
GOVCS=''
GOVERSION='go1.21.0'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
GOMOD=''
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/ys/nth2j_v53q55rqfkhvdfnj_80000gn/T/go-build2234700829=/tmp/go-build -gno-record-gcc-switches -fno-common

vscode 的配置

"go.alternateTools": {
        "go.goroot":"/Users/zhuxiaoyu/Desktop/go121",
        "go.gopath":"/Users/zhuxiaoyu/Desktop/gopath"
    }

vscode 报错提示

go: cannot find GOROOT directory: /Users/zhuxiaoyu/Desktop/gopath/go1.19.9

都快疯了,到底这个 vscode 读的哪里的环境变量

2470 次点击
所在节点    Visual Studio Code
34 条回复
main1234
22 天前
```
2024-08-27 15:19:02.940 [info] Installing github.com/cweill/gotests/gotests@v1.6.0 FAILED
2024-08-27 15:19:02.940 [info] {
"code": 2,
"killed": false,
"signal": null,
"cmd": "/Users/zhuxiaoyu/Desktop/go121/bin/go install -v github.com/cweill/gotests/gotests@v1.6.0",
"stdout": "",
"stderr": "go: downloading github.com/cweill/gotests v1.6.0\ngo: cannot find GOROOT directory: /Users/zhuxiaoyu/Desktop/gopath/go1.19.9\n"
}
```
zand1984
22 天前
echo $PATH 看看呢?
另外推荐 brew 来安装 go ,gvm 来切换 go 版本。没有切换版本需求就不装 gvm ,只用 brew 更新到 latest
zysuper
22 天前
billbur
22 天前
你如果是用 vscode 运行,可以检查一下右下角显示的版本是否对的
main1234
22 天前
@billbur 版本是对的,1.21
main1234
22 天前
@zysuper 我不用 1.19 了,不需要安装 19
zysuper
22 天前
@main1234 不是你用不用 1.19, 而是你的 vscode 用到的 gotests 找不到 go1.19.9, 所以报错了。
billbur
22 天前
@main1234 #5 go clean 清一下缓存呢,实在不行都重装吧😏
deplives
22 天前
我不用 Windows ,不会解决
但是感叹一句,Windows 对开发人员其实真的不友好。
之前写 Python ,连个 pyenv 都不支持。整个虚拟环境整了几天。真是麻了
main1234
22 天前
@deplives 你怎么看出来我用的是 Windows ??
main1234
22 天前
@billbur 破 vscode ,用公司电脑也有这个问题,不知道哪里错了,换 goland 了
proxytoworld
22 天前
@deplives darwin 不是经典的 mac
proxytoworld
22 天前
第一确认终端的 go 版本是否正确,第二在 vscode 终端看 go env ,第三或许可以用 strace...
proxytoworld
22 天前
再不济 soft link 过去
main1234
22 天前
@proxytoworld 换 goland 了,vscode 报错的命令我在 cmd 中运行正常
listenerri
22 天前
看一下 ~/.bashrc ?
main1234
22 天前
@listenerri 里面没东西
Nazz
22 天前
配置 GOROOT, GOPATH, GOPROXY 就行了, 其它都是多余的
mrtanwen
22 天前
johnwilson
22 天前
goland 不香吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1068170

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX