“command not found”说明PATH未配置或未生效;需将GOROOT/bin加入PATH并重启终端(Windows)或source配置文件(macOS/Linux),再运行go version验证。

go version 报错 “command not found”
说明系统根本没识别到 go 命令,不是 Go 安装失败,而是 PATH 没生效或安装路径压根没加进去。
- Windows 用户用 .msi 安装后,必须关闭所有 CMD/PowerShell 窗口再重开,否则环境变量不加载
- macOS/Linux 手动解压安装时,
GOROOT通常设为/usr/local/go,但必须把$GOROOT/bin加进PATH,例如:export PATH=$GOROOT/bin:$PATH - 检查是否误将
GOROOT和GOPATH设成同一路径(比如都指向/usr/local/go),Go 会拒绝启动并报错 - 执行
which go或where go(Windows)确认命令是否存在;若无输出,说明 PATH 配置无效
go mod tidy 报错 “failed to download golang.org/x/…”
这是国内网络环境下最典型的模块拉取失败,本质是代理没开或配置错,不是代码问题。
- 先确认
GO111MODULE已启用:go env -w GO111MODULE=on - 必须设置
GOPROXY,推荐七牛云镜像:go env -w GOPROXY=https://goproxy.cn,direct - 如果项目含私有仓库(如
git.internal.company.com),需跳过代理:go env -w GOPRIVATE=git.internal.company.com - 不要用
go get手动拉包来“绕过”,它会破坏go.mod一致性;始终以go mod tidy为准
编辑器提示 “package not found” 或 “gopls not found”
VS Code、GoLand 等依赖 gopls 提供语法支持,但这个二进制文件默认不会随 Go 一起安装,且路径容易错位。
- 手动安装:
go install golang.org/x/tools/gopls@latest(注意末尾的@latest) - 安装后检查
$GOPATH/bin/gopls是否存在;若不存在,说明GOPATH没设或$GOPATH/bin不在PATH中 - VS Code 中打开设置,搜
go.goroot和go.gopath,确保值与终端里go env GOROOT和go env GOPATH输出一致 - 重启编辑器(不是重载窗口),否则 LSP 不会重新探测
gopls路径
go run main.go 报错 “cannot find package”
不是包名写错,而是 Go 模块系统压根没识别当前项目为模块,常见于老项目迁移或路径混乱。
立即学习“go语言免费学习笔记(深入)”;
- 确认当前目录下有
go.mod文件;没有就执行go mod init myproject(模块名不能含空格或中文) - 绝对不要把新项目放在
$GOPATH/src目录下——Go Modules 和 GOPATH 模式互斥,放进去会导致模块被忽略 - 执行
go env查看GOMOD字段:若为空字符串,说明模块未激活;若为off,说明GO111MODULE=off被设了 - 删掉损坏的
go.sum或缓存后,运行go clean -modcache再试go mod tidy
GOROOT、GOPATH、GO111MODULE、GOPROXY)互相影响,改一个可能触发另一个失效。建议每次只调一个变量,改完立刻 go env 验证,别堆在一起调。


















