Beego v2 必须用 go get -u 安装,命令为 go get -u github.com/beego/beego/v2 和 go get -u github.com/beego/bee/v2,顺序不能反;需先 go mod init 初始化模块,再执行 go mod tidy,并确保 GOPROXY 和 GOPATH/bin 在 PATH 中,导入路径和 web.Run() 必须匹配 v2 规范。

Beego v2 必须用 Go Modules 安装,go get -u 是唯一可靠方式;不加 -u、不设 GOPROXY、不初始化模块,90% 会卡在旧版或直接失败。
go get -u github.com/beego/beego/v2 必须带 -u
不加 -u 时,go get 只检查本地缓存,不会拉取远程最新 commit。Windows 用户尤其容易卡在 v2.3.0 甚至更老的版本上——因为 GOPROXY 失效后,它就退回到只读缓存。正确命令只有:
go get -u github.com/beego/beego/v2go get -u github.com/beego/bee/v2
顺序不能反:先装框架,再装 CLI 工具。否则 bee 编译时可能因依赖版本错位而失败。
no required module provides package 错误怎么解
这个错误不是 Beego 的问题,而是当前目录没处于 Go 模块上下文中。Go 不知道该把依赖写进哪个 go.mod。
- 先运行
go mod init myapp(项目名可自定) - 再执行上面两个
go get -u命令 - 装完立刻跑
go mod tidy,否则go.sum缺 checksum,后续bee run或go run main.go会报missing go.sum entry
如果 go.mod 里仍显示旧版本号(比如 v2.2.0),大概率是 GOPROXY 没生效:运行 go env -w GOPROXY=https://goproxy.cn,direct 再重试。
bee 命令找不到?检查 GOBIN 和 PATH 是否配对
bee 二进制默认生成在 $GOPATH/bin,但终端找不到命令,基本是因为该路径没进 PATH。
- 运行
go env GOPATH看输出路径,比如/home/user/go - 确认
/home/user/go/bin/bee(Linux/macOS)或/home/user/go/bin/bee.exe(Windows)存在 - 把完整路径加进系统
PATH:Linux/macOS 加到~/.zshrc,Windows 在系统环境变量里补全 - 别往
$GOROOT/bin里硬塞bee,那是 Go 自身工具的地盘,放错会导致go build异常
import 路径和 web.Run() 是 v2 的硬性门槛
哪怕你重装了最新版 beego/v2,只要代码里还留着 import "github.com/astaxie/beego" 或调用 beego.Run(),就必然 panic。
- 正确导入:
import "github.com/beego/beego/v2/server/web" - 启动函数:
web.Run(),不是beego.Run() - 控制器继承:
type MainController struct { web.Controller },不是beego.Controller
这些不是“建议改”,是编译期强制校验。v2 和 v1 的包路径、符号、启动逻辑完全割裂,没有兼容层,也不存在 replace 降级方案。


















