Windows装Go需勾选“Add Go to PATH”,验证go version;无需设GOPATH,go mod init须在非Go安装目录运行;国内需配置GOPROXY;PowerShell需检查执行策略和$PROFILE;终端环境变量可能不一致。
Windows 下装 Go 环境本身不难,但容易卡在 GOPATH 和 GOBIN 的理解偏差、代理配置遗漏、以及 PowerShell 与 CMD 环境变量加载不一致这几个地方。
从官网 https://
www./link/81836b7cd16991abb7febfd7832927fd 下载 go1.xx.x.windows-amd64.msi(或 ARM64 版本),双击安装。关键一步是:安装向导最后一页务必勾选 Add Go to PATH for all users(或当前用户)。否则后续在任意终端执行 go version 都会报“命令未找到”。
验证是否成功:
go version
正常应输出类似 go version go1.22.3 windows/amd64。如果失败,请检查系统环境变量 PATH 是否已包含 C:\Go\bin(默认安装路径)。
旧教程常强调设置 GOPATH,但现在 Go 模块(go mod)是默认行为。你不需要手动设 GOPATH,也不建议把它指向项目目录——那反而会干扰模块查找逻辑。
go mod init example.com/hello 必须在项目根目录下运行,且该目录不能是 C:\Go 或其子目录(Go 安装目录会被自动识别为标准库路径,导致初始化失败)go: modules disabled by GO111MODULE=off,说明模块被禁用,运行 go env -w GO111MODULE=on 开启go get 超时或 403,需要配代理:go env -w GOPROXY=https://goproxy.cn,direct
即使 PATH 正确,PowerShell 有时仍找不到 go,常见原因是:$PROFILE 文件里有错误的 PATH 覆盖逻辑,或执行策略阻止了环境变量加载。
排查步骤:
$env:PATH -split ';' | Select-String 'Go',确认 C:\Go\bin 在结果中Get-ExecutionPolicy,若返回 Restricted,临时允许脚本:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
$PROFILE 中重复添加 PATH,尤其不要用 $env:PATH = "C:\Go\bin;" + $env:PATH 这种硬拼接——会覆盖系统级 PATH新建目录 C:\hello,进入后创建 main.go:
package main
import "fmt"
func main() {
fmt.Println("Hello, Windows + Go!")
}
然后执行:
go mod init hello go run main.go
如果输出正确,再试构建:
go build -o hello.exe
生成的 hello.exe 可直接双击运行(控制台闪退属正常,因无暂停逻辑)。若构建失败,大概率是当前目录位于 C:\Go 下,或 GOOS/GOARCH 被意外修改过(可用 go env GOOS GOARCH 查看,默认就是 windows 和 amd64)。
最常被忽略的是:不同终端(CMD / PowerShell / Git Bash / VS Code 终端)加载的环境变量可能不一致,调试时尽量统一用同一个终端,并用 go env 确认实际生效的配置。