beego.Run()已失效,当前唯一可用版本是github.com/beego/beego/v2;必须成对安装beego/v2和bee/v2,导入路径改为server/web,启动用web.Run(),控制器继承web.Controller。

beego.Run() 已失效,当前唯一可用的主线版本是 github.com/beego/beego/v2;v1 不再维护,混用路径或函数会导致编译失败、运行时 panic 或命令不可用。
beego/v2 和 bee/v2 必须成对安装
只装 beego/v2 但没装 bee/v2,或者反过来,都会导致项目无法创建或启动失败。两者版本号需对齐(如 v2.3.5 + v2.1.0),且安装顺序不能颠倒:
- 先执行
go get -u github.com/beego/beego/v2 - 再执行
go get -u github.com/beego/bee/v2 - 若提示
no required module provides package,说明当前不在 Go 模块路径下:先go mod init myapp,再重试 - Mac/Linux 用户注意:
bee二进制默认生成在$GOPATH/bin,该路径必须加入$PATH才能终端识别
导入路径和启动方式全量变更
v2 把原来大而全的 github.com/astaxie/beego 拆成多个子包,所有旧写法都会报错:
- 错误导入:
import "github.com/astaxie/beego"→ 必须改为import "github.com/beego/beego/v2/server/web" - 错误启动:
beego.Run()→ 必须改为web.Run() - 控制器继承错误:
type MainController struct { beego.Controller }→ 改为type MainController struct { web.Controller } - 日志、ORM、配置等模块也已分离,例如日志要显式导入
github.com/beego/beego/v2/core/logs
go.mod 和 go.sum 同步失败怎么办
新建项目后 bee new myapp,立刻 go run main.go 报 missing go.sum entry,不是 Beego 的问题,而是 Go Modules 的校验机制未同步依赖:
- 进入项目根目录,立即运行
go mod tidy - 若仍失败,大概率是
GOPROXY未生效:执行go env -w GOPROXY=https://goproxy.cn,direct - 极少数情况是本地缓存损坏,可清空:
go clean -modcache,再go mod tidy - Windows 用户特别注意:
GOPROXY在 PowerShell 中可能被忽略,建议改用 CMD 或设置GOENV持久化
bee version 正常但 beego version 报 command not found
bee 是独立工具,beego 本身不提供命令行命令——所谓 beego version 是误解。v2 完全移除了全局命令入口,所有功能都通过 bee 或代码内 API 控制:
-
bee version查的是 bee 工具版本 -
bee run启动项目,底层调用的是你代码里的web.Run() - 想确认实际加载的 beego 版本?看
go.mod文件里github.com/beego/beego/v2后面的 commit hash 或 tag - 别试图用
go install或beego version验证框架版本,那只会浪费时间
真正容易被忽略的点是:v2 的模块拆分不是“可选优化”,而是强制结构。哪怕只用路由,也得导入 server/web;哪怕只用日志,也得单独 import core/logs。没有“一键全包”路径,少导一个子包就编译不过。











