根本原因是powershell或cmd未加载新path,需重启终端;检查$env:path是否含go\bin路径,若无则手动添加并重启,goroot一般自动配置,gopath现代项目中非必需。

go install 后 PATH 没生效,命令行找不到 go
Windows 上用官方 MSI 安装包或 Chocolatey 装完 go,go version 报 command not found 是最常见问题。根本原因不是没装上,而是 PowerShell 或 cmd 没读到新 PATH。
- 打开新终端窗口(别复用旧的),再试
go version - 检查是否被系统策略拦截:运行
Get-ExecutionPolicy,若输出Restricted,执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 确认安装路径是否在 PATH 里:运行
$env:PATH -split ';' | Select-String 'Go',应看到类似C:\Program Files\Go\bin或C:\tools\go\bin(Chocolatey 默认路径) - 如果没出现,手动加:PowerShell 中运行
$env:Path += ';C:\Program Files\Go\bin'(临时),或改系统环境变量(永久)
GOROOT 和 GOPATH 还需要手动设吗?
Go 1.16+ 已默认启用 modules,GOROOT 仍需存在(指向安装目录),但 GOPATH 不再强制要求——它只影响 go get 下载依赖的缓存位置,默认是 $HOME/go。强行设错反而容易出问题。
Go语言(Golang)1.26.0版本提供 Go 官方 Windows amd64 MSI 安装包下载入口,版本号 1.26.0,可用于旧项目维护、兼容性测试和指定版本开发环境配置。
-
GOROOT一般不用动:官方安装包会自动设好;若手动解压,需确认$env:GOROOT指向根目录(如C:\Go),且$env:GOROOT\bin在 PATH 中 -
GOPATH建议不设:除非你要用老式src/pkg/bin目录结构;现代项目直接go mod init即可,依赖全在go.sum锁定,跟GOPATH无关 - 验证:运行
go env GOROOT和go env GOPATH,前者应有值,后者即使为空也不影响模块化开发
go env -w 设置代理失败,提示 “cannot set environment variable”
这是 Windows PowerShell 的安全限制,go env -w 实际写的是用户级环境变量,但某些域策略或组策略会禁止修改。
- 绕过方式:直接用系统设置 GUI 修改环境变量,或在 PowerShell 中用
[Environment]::SetEnvironmentVariable('GOPROXY', 'https://goproxy.cn', 'User') - 验证是否生效:重启终端后运行
go env GOPROXY,不应为空 - 注意:不要设成
direct或留空,国内直连proxy.golang.org基本超时;goproxy.cn和goproxy.io是稳定备选 - 如果公司内网有私有代理,优先配内网地址,避免外网请求被拦截
choco install golang 失败,报 Execution policies prevent the script
Chocolatey 本质是 PowerShell 脚本,而 Windows 默认禁用未签名脚本执行。这不是 Chocolatey 的 bug,是系统级防护机制。
- 只需一条命令解锁当前用户:运行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 别用
Administrator权限跑 choco,普通用户权限 + 正确策略即可 - 装完后建议运行
choco pin golang,防止意外升级破坏现有项目兼容性(尤其当团队还在用 Go 1.19) - 如果已装多个版本,用
choco list --local-only | findstr golang查看,用choco uninstall golang清干净再重装
C:\Users\张三\)仍是硬伤,部分旧工具链会在此路径下崩溃,哪怕你没主动引用它——这问题不会报错,只会静默失败。真遇到诡异构建失败,先试试把项目挪到 C:\work 这类纯英文路径下验证。golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










