beego v2 是唯一推荐版本,v1 已停更;安装需配对 gopath/gobin、启用模块代理、使用 go get -u github.com/beego/beego/v2 和 github.com/beego/bee/v2;导入路径必须为 github.com/beego/beego/v2;启动须用 web.run() 且控制器继承 web.controller。

Beego v2 是当前唯一推荐使用的主线版本,v1 已停止维护;安装失败或命令报错,90% 情况出在 GOPATH / GOBIN 环境变量没配对、模块代理未启用,或混用了 v1 和 v2 的导入路径。
go get 安装 beego/v2 和 bee/v2 时必须加 -u 参数
不加 -u 会导致拉取到过期的缓存版本,尤其是 Windows 下 GOPROXY 失效时更明显。v2 的正确导入路径是 github.com/beego/beego/v2,不是旧版的 github.com/astaxie/beego。
- 执行这两条命令(顺序不能反):
go get -u github.com/beego/beego/v2
go get -u github.com/beego/bee/v2
- 如果提示
no required module provides package,说明当前不在模块路径下:先go mod init myapp初始化,再重试 - Mac/Linux 用户注意:
bee二进制默认生成在$GOPATH/bin,该路径必须在$PATH中,否则终端识别不到命令
bee new 创建项目后立即报 missing go.sum entry
这是 Go Modules 的典型校验失败,不是 beego 本身的问题。新项目创建后,go.mod 里声明了依赖但 go.sum 还没同步。
- 进入项目根目录,立刻运行:
go mod tidy
- 若仍失败,大概率是 GOPROXY 没生效:执行
go env -w GOPROXY=https://goproxy.cn,direct - 极少数情况是本地模块缓存损坏,可清空:
go clean -modcache
,再go mod tidy
bee run 启动失败,提示 undefined: beego.Run
这是最常踩的坑:代码里还用着 v1 的写法,但实际装的是 v2。v2 把核心入口函数拆到了子包,beego.Run() 已废弃。
- 检查
main.go是否含import "github.com/astaxie/beego"—— 这是 v1 路径,必须改成:import "github.com/beego/beego/v2/server/web"
- v2 启动方式变为:
web.Run()
,不是beego.Run() - 控制器继承也要改:旧写法
type MainController struct { beego.Controller }→ 新写法type MainController struct { web.Controller }
bee version 显示 bee 正常但 beego version 报 command not found
beego version 命令在 v2 中已被移除,它只存在于 v1。v2 不再提供全局 CLI 版本查询,验证框架是否装好,应直接看项目能否启动成功,或检查 go list -m github.com/beego/beego/v2 是否返回版本号。
真正容易被忽略的是:v2 的日志、ORM、Cache 等模块全部解耦为独立包(如 github.com/beego/beego/v2/core/logs),如果你在代码里直接调 beego.BeeLogger,会编译失败 —— 必须显式 import 对应子包并使用其导出的实例。











