goroot必须重设,因settings.zip保存绝对路径,换电脑后旧路径失效;需手动在settings→go→goroot中添加新机go根目录(含bin/src/pkg),并验证go env goroot输出一致。

GOROOT 必须重设,旧路径导入后不会自动更新
GoLand 导出的 settings.zip 里保存的是绝对路径,比如 C:\Go 或 D:\Programs\Go。换电脑后即使 Go 安装在相同路径,也可能因盘符、用户目录或权限差异导致 SDK 不识别。更常见的是新机装在 C:\Program Files\Go 而旧机是 C:\Go,此时 IDE 会报 “No SDK configured” 或 “Invalid GOROOT”。
解决方法很简单:打开 File → Settings → Go → GOROOT,点击右侧 + 号,手动浏览并选择新机器上的 Go 安装根目录(必须包含 bin/go.exe)。不要依赖导入的旧值,也不要用“Edit”直接改路径字符串——IDE 有时校验失败却不提示。
- 验证方式:执行
go env GOROOT,输出应与 Settings 中一致 - 若用多版本 Go(如同时维护 1.24 和 1.26),建议在新机也用 MSI 安装,避免解压版路径不规范
- WSL2 用户注意:Windows 版 GoLand 无法直接使用 WSL 中的
/usr/local/go,必须安装 Windows 原生 Go
GOPROXY 不生效?检查是否被旧配置覆盖
导入设置后,GOPROXY 常常看起来“已设置”,但 go mod download 仍卡在 proxy.golang.org。这是因为 Go 的环境变量优先级是:go env -w 写入的值 > IDE 设置 > 系统环境变量。而旧机导出的配置可能没写入 go env,只存于 IDE UI 层。
直接在终端运行:go env GOPROXY,如果输出仍是 https://proxy.golang.org,direct,说明 IDE 设置没生效。此时应放弃 Settings 页面里的代理配置,改用命令行强制重写:
go env -w GOPROXY=https://goproxy.cn,direct
- 国内推荐值:
https://goproxy.cn,direct或https://mirrors.aliyun.com/goproxy/,direct - 如果公司有私有代理,确保
direct在最后,否则私有库 fallback 失败 - 执行后立刻验证:
go env GOPROXY输出应与命令中一致,且无引号
PATH 缺失 %GOPATH%\bin 导致工具找不到
很多用户能跑 go run,但执行 gopls、gotestsum 或自己 go install 的命令时提示 “command not found”。问题不在 GoLand,而在系统 PATH 没包含 %GOPATH%\bin —— 这个目录存放所有通过 go install 安装的二进制工具。
Colly 是一个用于 Go 语言的快速开源爬取和爬虫框架。它适用于从简单的页面提取到异步爬虫处理大量页面集合,支持请求回调和结构化解析。
检查方式:打开新终端,运行 echo %PATH%,搜索是否有类似 D:\goprojects\bin 的路径。如果没有,需手动编辑系统环境变量,在 Path 中新增一项:%GOPATH%\bin(不是硬编码路径,要保留百分号)。
- 新增前先确认
GOPATH已正确定义(echo %GOPATH%应输出有效路径) - 如果
GOPATH是用户变量而非系统变量,%GOPATH%\bin必须加在用户级Path中 - 改完务必新开一个 CMD/PowerShell 窗口测试,旧窗口的
PATH不会自动刷新
GO111MODULE=on 不是默认保险,得单独确认
虽然 Go 1.16+ 默认启用模块,但某些旧项目或跨版本迁移场景下,GO111MODULE 可能被设为 auto 或 off。现象是:在非 GOPATH/src 目录下执行 go build 报错 go: modules disabled by GO111MODULE=off,或意外从 GOPATH 加载依赖。
最稳妥的做法是显式开启:
go env -w GO111MODULE=on
然后验证:
go env GO111MODULE
- 输出必须是
on(小写,无空格),不是ON或"on" - 这个设置影响所有项目,无需 per-project 配置
- 如果团队协作,建议把
GO111MODULE=on写进 CI 脚本或开发文档,避免本地和构建机行为不一致
真正容易被忽略的不是哪一步操作,而是「环境变量的生效层级」:系统变量、用户变量、shell 启动脚本、IDE 设置、go env -w,五者互不覆盖,且优先级固定。迁移时只改 IDE 设置,不碰 go env 和系统 PATH,大概率一半功能正常、一半报错找不到东西。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










