goland项目级环境变量必须手动配置goroot和go111module,仅靠系统path无效;goroot需在settings→go中指定根目录并重启ide;go111module=on须在run→edit configurations→environment variables中显式添加,否则调试/运行时报“not in a module”或“go sdk not found”。

GoLand 项目级环境变量必须手动填,不能只靠系统 PATH 继承 —— 尤其是 GOROOT 和 GO111MODULE,不显式设就容易在调试/运行时找不到 SDK 或报 not in a module。
GOROOT 必须在 GoLand 设置里单独指定
即使系统环境变量已正确配置 GOROOT,GoLand(尤其从桌面图标启动时)可能读不到它。Windows/macOS 上常见现象是新建项目后提示 Go SDK not found,或 go env GOROOT 在 IDE 内置终端里输出为空。
- 打开
File → Settings → Go → GOROOT(macOS 是GoLand → Preferences → Go → GOROOT) - 点击右侧
…按钮,选择你真实安装 Go 的根目录(如D:\go、/usr/local/go),不要选到bin子目录 - 确认后重启 GoLand,再进
Terminal执行go env GOROOT,应能输出一致路径
GO111MODULE=on 要写进项目环境,不能只靠全局 go env -w
GoLand 启动的调试器和运行配置默认不继承 shell 的 go env 设置。如果项目根目录有 go.mod,但运行时仍报 go: modules disabled,大概率是这个值没传进去。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 进入
Run → Edit Configurations → Templates → Go Build(或当前运行配置) - 在
Environment variables栏点击…,添加一行:GO111MODULE=on - 如果还用
go get,建议顺手加上:GOPROXY=https://goproxy.cn,direct - 注意:这个设置只对当前运行/调试生效;若多个项目,每个都得单独配
GOPATH 不用配,但 GOBIN 得小心别污染 GOROOT/bin
模块模式下 go build 和 go run 完全不看 GOPATH,但 go install 默认把二进制丢进 $GOPATH/bin —— 如果你没设 GOBIN,又恰好 GOPATH 和 GOROOT 混了,生成的命令会覆盖掉 go、gofmt 等工具。
- 推荐显式设
GOBIN:在Settings → Go → Go Environment的Environment字段里加GOBIN=%GOPATH%\bin(Windows)或GOBIN=$GOPATH/bin(macOS/Linux) - 确保系统级
GOPATH是独立路径(如D:\go-workspace),绝不能等于GOROOT - 如果只是跑项目不
install,GOBIN可以不设,但别让go install默默往GOROOT/bin写东西
真正容易被忽略的是:GoLand 的“运行配置”和“调试配置”是两套环境变量,改完 Templates → Go Build 后,还得检查 Templates → Go Test 或具体调试配置是否也同步了 GO111MODULE 和 GOPROXY —— 否则测试能跑通,调试却卡在依赖解析上。










