GoLand中import不提示的首要原因是未启用Go Modules:需在Settings→Go→Go Modules中勾选Enable Go Modules integration,确保项目含go.mod文件,并用module名而非相对路径导入本地包。

GoLand 里 import 提示不出现?先确认模块模式已启用
GoLand 不自动补全第三方包、import 语句不弹出,大概率是 Go Modules 没开。Go 1.16+ 默认启用,但 GoLand 仍可能沿用旧配置。
检查路径:Settings / Preferences → Go → Go Modules (vgo),必须勾选 Enable Go Modules integration。如果没勾,即使终端能 go get 成功,IDE 也识别不了依赖。
- 代理建议填
https://goproxy.cn或https://proxy.golang.org,国内访问更稳 - 别再设
Project GOPATH—— 启用 module 后它已废弃,设了反而干扰依赖解析 - 如果项目根目录没有
go.mod,右键目录 →Go → Create Go Module,或终端执行go mod init example.com/myapp
输入包路径后按 Ctrl+Enter,不是回车
在代码里写 github.com/gin-gonic/gin(不带 import 关键字),光标停在路径末尾,按 Ctrl+Enter(Windows/Linux)或 Cmd+Enter(macOS),GoLand 才会把它转成合法的 import 语句并自动下载。
常见误操作:直接敲 import "github.com/..." 然后回车——这不会触发任何自动行为,IDE 当作普通文本处理。
- 如果路径拼错(比如少个
-或大小写不对),补全菜单根本不会出现,先去 GitHub 确认仓库真实路径 - 首次导入时,GoLand 底部状态栏会显示
Downloading github.com/gin-gonic/gin@latest,等它结束再写代码 - 若卡住,可手动终端执行
go get github.com/gin-gonic/gin,再回 IDE 刷新
空白导入(_)和点导入(.)别乱用
看到别人用 import _ "github.com/go-sql-driver/mysql" 或 import . "fmt",就照抄?容易翻车。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
import _ 只用于触发包的 init(),比如注册数据库驱动;import . 会把所有导出名直接塞进当前命名空间,极易引发命名冲突(比如两个包都有 Println)。
- MySQL 驱动必须用
import _ "github.com/go-sql-driver/mysql",否则sql.Open("mysql", ...)会报unknown driver "mysql" -
import . "fmt"在小型脚本里可能省事,但团队项目里禁止使用——GoLand 的重命名、跳转、Find Usages 全部失效 - 别为了“少打几个字”用别名如
import f "fmt",标准库就该用原名,降低协作成本
本地包导入失败?路径不是 ./model,而是 module 名 + 子路径
你在项目里建了个 ./model 文件夹,然后写 import "./model",GoLand 报错 use of internal package not allowed 或 cannot find package —— 这是 go mod 下的典型症状。
解决方法:打开 go.mod,看第一行 module example.com/myapp,那你的本地包就必须用这个前缀导入:
import "example.com/myapp/model"
而不是相对路径。IDE 不会帮你改,你得手动修正,且确保 model 目录下有 model.go 并含 package model 声明。
- 如果
go.mod里 module 名是myapp(没域名),建议重写为example.com/myapp,避免未来发布到公共仓库时冲突 - 子模块(如
model/user)要写成example.com/myapp/model/user,不能漏掉中间段 - GoLand 的 “Go to Declaration” 对这种路径支持良好,但前提是路径完全匹配
go.mod定义
go.mod 的声明。写错一个字符,整个包就不可见。

















