Beego v2 是当前唯一主线版本,v1 已停更;安装失败主因是 GOPATH/GOBIN 配置错误、GOPROXY 未启用或混用 v1/v2 导入路径;必须用 go get -u 安装两个 v2 包,且需确保 go.mod 初始化、PATH 包含 $GOPATH/bin、main.go 中使用 github.com/beego/beego/v2/server/web 路径及 web.Run() 启动。

Beego v2 是当前唯一可用的主线版本,v1 已停更且不兼容新 Go 版本;安装失败几乎都卡在 GOPATH/GOBIN 配置、模块代理未启用、或混用 v1/v2 导入路径这三处。
go get -u 安装 beego/v2 和 bee/v2 时必须加 -u 参数
不加 -u 会导致拉取过期缓存版本,尤其在 Windows 下 GOPROXY 失效时更明显。执行顺序不能颠倒:
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 初始化模块,再重试两条 go get 命令。
bee 命令找不到?检查 $GOPATH/bin 是否在 $PATH 中
bee 二进制默认生成在 $GOPATH/bin(Windows 是 %USERPROFILE%\go\bin),该路径必须加入系统 PATH 环境变量才能全局调用。
- Mac/Linux:在
~/.bashrc或~/.zshrc中添加export PATH=$PATH:$GOPATH/bin - Windows:将
%USERPROFILE%\go\bin添加到系统环境变量PATH,然后重启终端 - 验证:运行
bee version应输出版本号,而非command not found
bee new 创建项目后 go run main.go 报 missing go.sum entry
这不是 Beego 的问题,而是 Go Modules 的校验失败:项目里 go.mod 声明了依赖,但 go.sum 还没同步。
- 进入项目根目录,立刻运行
go mod tidy - 若仍失败,大概率是
GOPROXY没生效:执行go env -w GOPROXY=https://goproxy.cn,direct - 极少数情况是本地模块缓存损坏,可清空:
go clean -modcache,再go mod tidy
main.go 启动报 undefined: beego.Run?你还在用 v1 的写法
v2 已废弃 beego.Run(),所有入口和控制器继承路径都变了。
- 旧导入路径(v1):
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 }
这些改动看似小,但漏改任意一处都会导致编译失败——尤其是从旧教程抄代码时,github.com/astaxie/beego 这个路径现在根本不存在。











