必须加 -u:go get -u github.com/beego/beego/v2 和 go get -u github.com/beego/bee/v2 中的 -u 强制更新依赖并拉取最新兼容版本,不加会复用本地缓存旧版(如 alpha 版),导致 bee run 崩溃;误装后需先 go clean -modcache 再重装。

go get -u 必须加,不加会拉到过期缓存版本
Beego v2 的安装命令里 go get -u github.com/beego/beego/v2 和 go get -u github.com/beego/bee/v2 中的 -u 不是可选项——它强制更新依赖树并拉取最新兼容版本。不加时,Go 会复用本地 module cache 里的旧版(比如 v2.0.0-alpha),而这类缓存版本常缺失关键修复(如表单空值处理、nil 返回值 panic),导致后续 bee run 直接崩溃。
- Windows 用户尤其要注意:
GOPROXY失效时,-u是唯一能绕过本地脏缓存的手段 - 如果已误装旧版,别试
go get覆盖——先执行go clean -modcache清掉缓存再重装 -
go mod init myapp必须在go get -u前完成,否则提示no required module provides package
导入路径写错是启动失败的头号原因
beego.Run() 在 v2 中已彻底移除,所有还用 import "github.com/astaxie/beego" 的代码都会编译报错 undefined: beego.Run。v2 强制模块化拆分,核心运行时移到 github.com/beego/beego/v2/server/web 子包。
- main.go 里必须写
import "github.com/beego/beego/v2/server/web",不是旧路径 - 控制器结构体继承要同步改:从
beego.Controller改成web.Controller - 路由注册也得换函数:用
web.Router("/", &MainController{}),不是beego.Router
bee version 正常但 beego version 报 command not found
这是典型环境变量错配:bee 工具装进了 $GOPATH/bin,但 beego 命令本身从来就不存在——v2 不提供全局 beego CLI。所谓 beego version 是 v1 时代的遗留命令,v2 只有 bee version 能查框架版本(它会同时显示 bee 和 beego/v2 的当前 commit)。
- 执行
bee version输出里若含beego/v2@v2.3.5,说明框架已正确安装 - 如果
bee命令本身找不到,检查$GOPATH/bin是否在$PATH中(Mac/Linux 运行echo $PATH确认) - Windows 用户注意:PowerShell 默认不读取用户级 PATH,建议改用 CMD 或重启终端
go.sum missing entry 错误不是 Beego 的锅
bee new 创建项目后立即 bee run 报 missing go.sum entry,本质是 Go Modules 校验失败:项目 go.mod 里声明了 github.com/beego/beego/v2,但 go.sum 还没生成对应哈希值。
- 进入项目根目录后,立刻执行
go mod tidy—— 它会自动下载依赖、补全go.sum并清理无用项 - 若
go mod tidy卡住或失败,大概率是代理失效,执行go env -w GOPROXY=https://goproxy.cn,direct再重试 - 极少数情况是本地
pkg/mod损坏,可删掉整个$GOPATH/pkg/mod目录后重来
实际跑通的关键往往卡在路径和版本的精确匹配上,比如 github.com/beego/beego/v2 少一个 /v2,或者 web.Run() 写成 beego.Run(),这种错误不会报语法问题,而是直接 panic 或静默失败。











