答案是path未正确配置:macos安装go后“command not found: go”主因是/usr/local/go/bin未加入path,需在~/.zshrc中添加export path=$path:/usr/local/go/bin并source生效。

go command not found:PATH 没加对,不是没装
终端敲 go version 报错 command not found: go,90% 是路径没加进 PATH,不是没装。macOS 默认用 zsh,配置文件是 ~/.zshrc;如果改过 shell 或用旧系统,也可能是 ~/.bash_profile。
别直接写 export PATH=/usr/local/go/bin —— 这会覆盖原有 PATH,导致 lsgit 等命令失效。
- 正确写法是:
export PATH=$PATH:/usr/local/go/bin(pkg 安装默认路径)或export PATH=$PATH:/usr/local/opt/go/libexec/bin(Homebrew 安装路径) - Homebrew 用户可运行
which go确认实际路径,再填到export里 - 改完必须执行
source ~/.zshrc,新开终端不生效 - 验证:运行
echo $PATH,确认输出里含/usr/local/go/bin或对应路径
GOPATH 和 GOROOT 写反了:一个指向项目,一个指向安装目录
错误提示 GOPATH set to GOROOT has no effect 或 cannot find package "fmt",基本就是这两个变量混了。
GOROOT 是 Go 自己的家(安装位置),GOPATH 是你写代码的家(工作区)。它们绝不能一样,也不该手动设 GOROOT —— pkg 或 Homebrew 安装后它通常自动正确。
- 只设
GOPATH:比如export GOPATH=$HOME/go,然后export PATH=$PATH:$GOPATH/bin - 别写
export GOROOT=$GOPATH,删掉配置文件里任何这种行 - 不确定当前值?运行
go env GOROOT GOPATH直接看 - Go 1.16+ 默认启用模块(
GO111MODULE=on),GOPATH只影响go install生成的二进制存放位置,不影响项目路径
国内拉不到依赖:GO111MODULE 和 GOPROXY 必须开
go mod download 卡住、超时、报 proxy.golang.org refused,说明模块代理没配,不是网络差——是根本没走代理。
Go 默认关模块(老项目兼容),且默认用境外代理。国内环境必须显式启用并换源。
- 启用模块:
go env -w GO111MODULE=on - 设国内代理(推荐清华或七牛):
go env -w GOPROXY=https://goproxy.cn,direct - 私有仓库要加
GOPRIVATE:go env -w GOPRIVATE=git.company.com/internal - 验证:
go env GOPROXY输出应是你设的地址,不是空或https://proxy.golang.org
VS Code 提示 “gopls not found”:不是插件问题,是工具链缺失
VS Code 装了 Go 插件,但底部状态栏一直显示 “Installing tools…” 或弹窗报 gopls 找不到,这不是插件坏了,是 Go 工具链没装全。
插件依赖 gopls(语言服务器)、dlv(调试器)、gofumpt(格式化)等二进制,它们默认装在 $GOPATH/bin,而 VS Code 不一定自动识别这个路径。
- 先确认
$GOPATH/bin在PATH里(见第一个副标题) - 手动装一次:
go install golang.org/x/tools/gopls@latest - 如果提示
command not found: go install,说明go命令本身不可用,先解决 PATH 问题 - VS Code 设置里搜
go.gopath,确保值和go env GOPATH一致;再搜go.toolsGopath,设为同值
最常被忽略的点:go env -w 写的配置是永久生效的,但只作用于当前用户 Shell 环境;如果用 GUI 启动 VS Code(比如从 Dock 点开),它可能读不到 ~/.zshrc 里的 PATH —— 此时得靠 go env -w 配置补位,或者改用终端启动 VS Code:code .。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











