Beego v2 是当前唯一能正常安装并用于新项目的版本,v1 已停更且与 Go 模块系统冲突;安装需启用 GO111MODULE=on、配置 GOPROXY、执行 go get -u github.com/beego/beego/v2 和 go get -u github.com/beego/bee/v2,导入路径为 github.com/beego/beego/v2/server/web,启动用 web.Run(),控制器继承 web.Controller。

Beego v2 是当前唯一能正常安装并用于新项目的版本,v1 已停更且与 Go 模块系统冲突;绝大多数“bee 命令找不到”“undefined: beego.Run”“no required module provides package”错误,都源于 GOPATH/GOBIN 配置错误、模块代理未启用,或混用了 v1 和 v2 的导入路径。
go get 安装 beego/v2 和 bee/v2 必须加 -u 参数
不加 -u 会导致拉取本地缓存的过期版本(尤其 Windows 下 GOPROXY 失效时),最终出现依赖解析失败或符号未定义问题。
- 先确保模块已启用:
go env -w GO111MODULE=on - 设置国内代理(防超时):
go env -w GOPROXY=https://goproxy.cn,direct - 两条命令必须按顺序执行(不在任何项目目录内):
go get -u github.com/beego/beego/v2go get -u github.com/beego/bee/v2 - 若提示
no required module provides package,说明当前不在 Go 模块路径下:先go mod init myapp初始化,再重试
bee 命令找不到?检查 $GOPATH/bin 是否在 $PATH 中
bee 二进制默认生成在 $GOPATH/bin/bee,该路径必须显式加入系统 PATH,否则终端无法识别命令。
- 查当前
GOPATH:go env GOPATH(例如输出/Users/xxx/go,则bee在/Users/xxx/go/bin/bee) - 临时生效(仅当前终端):
export PATH=$PATH:/Users/xxx/go/bin - 永久生效(Mac/Linux):把上行写入
~/.zshrc或~/.bash_profile,再source ~/.zshrc - Windows 用户需手动将
%USERPROFILE%\go\bin加入系统环境变量PATH - 验证:
bee version应输出类似v2.1.0
bee new 创建项目后 go mod tidy 报 missing go.sum entry
这不是 Beego 的问题,而是 Go Modules 的校验机制在起作用:项目初始化时 go.mod 已声明依赖,但 go.sum 尚未同步生成。
- 进入项目根目录(含
main.go和go.mod的目录) - 立即运行:
go mod tidy - 若仍失败,大概率是
GOPROXY没生效:再执行一次go env -w GOPROXY=https://goproxy.cn,direct - 极少数情况是本地模块缓存损坏,可清空:
go clean -modcache,再go mod tidy
真正容易被忽略的是:v2 的控制器必须继承 web.Controller,启动函数是 web.Run(),导入路径必须为 github.com/beego/beego/v2/server/web —— 这些细节一旦写成 v1 风格(如 beego.Controller、beego.Run()、github.com/astaxie/beego),编译会通过但运行时报错或路由失效,且错误信息不直观。











