go mod tidy 能解决大部分 missing go.sum entry 问题,但前提是已在正确模块路径下执行;若项目无 go.mod 或工作目录不在模块根目录,则需先 go mod init myproject 再运行 go mod tidy。

go mod tidy 不能解决 missing go.sum entry?先确认是否在模块路径下
执行 bee new myproject 后直接 bee run 报 missing go.sum entry,不是 Beego 的 bug,而是 Go Modules 的校验机制在起作用。根本原因是项目根目录下没有有效的 go.mod,或者当前工作目录不在模块路径内。
- 进入项目目录后,先运行
go mod init myproject(模块名建议用小写、无特殊字符) - 再立刻执行
go mod tidy—— 它会读取main.go中的 import 路径,拉取对应版本并补全go.sum - 如果
go mod tidy报no required module provides package,说明main.go里还残留 v1 的导入路径(如"github.com/astaxie/beego"),必须先改成 v2 路径
GO111MODULE=off 时安装 bee 失败?别混用模块与 GOPATH 模式
部分旧教程教你在 GO111MODULE=off 下用 go get github.com/beego/bee,但 Beego v2 的 bee/v2 已不兼容该模式 —— 它依赖的子包(比如 delve)有模块声明冲突,会报 parsing go.mod: module declares its path as ... but was required as ...。
- 统一启用模块:运行
go env -w GO111MODULE=on - 安装命令必须加
-u:go get -u github.com/beego/bee/v2和go get -u github.com/beego/beego/v2 - 若仍失败,检查
go env GOPROXY是否生效;国内用户推荐设为https://goproxy.cn,direct
bee 命令识别不到?GOBIN 不在 PATH 是最常见原因
bee version 提示“不是内部或外部命令”,90% 是因为 bee 二进制没被系统找到。它默认生成在 $GOPATH/bin,但这个路径未必在 $PATH 里。
- 查当前 GOPATH:
go env GOPATH,然后确认$GOPATH/bin是否存在bee(Linux/macOS)或bee.exe(Windows) - 把该路径加入
PATH:Linux/macOS 运行export PATH=$PATH:$GOPATH/bin;Windows 在系统环境变量中追加 - 新开终端验证:
which bee或where bee,再试bee version
v2 启动报 undefined: beego.Run?导入路径和入口函数全得换
装的是 v2,但代码还按 v1 写,就会出现 undefined: beego.Run 或控制器无法继承等错误。v2 不再提供顶层 beego 包,所有能力拆到子模块。
- import 必须是:
import "github.com/beego/beego/v2/server/web"(不是astaxie,也不是beego/v2根路径) - 启动改用:
web.Run(),不是beego.Run() - 控制器结构体继承也要同步:
type MainController struct { web.Controller } - 日志、配置等其他功能同理,比如日志要
import "github.com/beego/beego/v2/core/logs"
Beego v2 的模块化设计让依赖更清晰,但也意味着 v1 的路径、函数、结构体都不能直接沿用。最容易忽略的是:即使 go.mod 里写了 github.com/beego/beego/v2,只要 main.go 里 import 错了,整个项目就编译不过 —— 这不是缓存问题,是 Go 编译器的硬性检查。











