“command not found”是path未配置所致,需将go的bin目录(如/usr/local/go/bin)加入环境变量,并确保$gopath/bin也纳入path,再source配置文件生效。

Go 环境变量没配对,go run 直接报错 “command not found”
不是 Go 没装好,而是 shell 找不到 go 命令。Mac/Linux 默认只认 /usr/bin、/bin 这些路径,而 Homebrew 或手动解压安装的 Go 二进制通常在 /usr/local/go/bin 或 $HOME/sdk/go/bin。
- 先确认 Go 是否真装上了:
ls /usr/local/go/bin/go或which go(如果返回空,说明没在 PATH 里) - 编辑
~/.zshrc(或~/.bash_profile)加一行:export PATH=$PATH:/usr/local/go/bin - 重载配置:
source ~/.zshrc,再试go version - 别漏掉
$GOPATH/bin——所有go install的工具(比如gofmt、gocode)都落这儿,也得加进 PATH
go get 失败卡在 “fetching” 或提示 “module lookup failed”
Go 1.16+ 默认启用 module 模式,go get 不再直接往 $GOPATH/src 写代码,而是下载到 $GOPATH/pkg/mod 并缓存。失败主因是代理或模块镜像未设好。
- 国内必须设代理:
go env -w GOPROXY=https://goproxy.cn,direct - 关掉私有仓库校验(开发阶段):
go env -w GONOSUMDB="*" - 如果还卡住,手动清缓存:
go clean -modcache,再重试 - 注意:
go get github.com/u2takey/ffmpeg-go这类第三方包,要确保当前目录有go.mod(用go mod init myproj初始化),否则会降级到 GOPATH 模式并报错
Atom / VS Code 插件报 “gocode not found” 或跳转失效
插件依赖的 CLI 工具(gocode、godef、goimports)没装全,或路径没对上。尤其 VS Code 的 Go 插件(v0.38+)已弃用 gocode,改用 gopls。
- 统一用官方语言服务器:
go install golang.org/x/tools/gopls@latest - 删掉旧工具:
rm -f $GOPATH/bin/gocode $GOPATH/bin/godef - VS Code 设置里把
"go.gopath"留空(自动识别),"go.goplsPath"设为$GOPATH/bin/gopls - Atom 的
go-plus插件已过时,建议换 VS Code +gopls,否则补全和跳转大概率断连
写完代码 go run main.go 却提示 “undefined: xxx”
不是语法错,是 Go 的包组织规则没被遵守。Go 要求:同一目录下所有 .go 文件必须属同一个包,且 main 函数只能在 package main 里。
- 检查文件开头是否都是
package main(不能有的写package utils) - 如果有多个文件,别漏掉
import—— Go 不像 Python 自动导入同目录文件 - 函数首字母小写(如
parseUrl)是私有的,其他文件不可见;跨文件调用必须大写(ParseUrl) - 别在
main.go里 import 本地包却没建子目录——import "./utils"是非法的,得用模块路径,比如import "myproj/utils"
GOROOT、GOPATH、go.mod 三层机制隔离标准库、全局工具和项目依赖。很多人卡在第二层(GOPATH 工具链)就停了,其实从 Go 1.16 开始,go mod 才是主力,GOPATH 只管放 gopls 这种语言服务器——这点不厘清,装十遍环境都白搭。golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











