bee命令找不到的主因是$GOPATH/bin未加入PATH环境变量,需先用go env GOPATH确认路径,再将对应bin目录(如/home/user/go/bin)添加至PATH并重启终端;bee new必须在$GOPATH/src下执行,且v2版本须改导入路径为github.com/beego/beego/v2/server/web、启动函数为web.Run()。

bee 命令找不到:$GOPATH/bin 没进 PATH
执行 bee version 报 “command not found” 或 “不是内部或外部命令”,90% 是因为 bee 二进制没被系统识别。它默认生成在 $GOPATH/bin(Windows 是 %USERPROFILE%\go\bin),但这个路径不在 PATH 里。
验证方式:
- 运行
go env GOPATH看输出路径(比如/home/user/go) - 检查该路径下是否存在
bin/bee(Linux/macOS)或bin/bee.exe(Windows) - 把完整路径(如
/home/user/go/bin)加进PATH,然后新开终端再试
Mac/Linux 用户注意:别手动把 bee 复制到 $GOROOT/bin,那是 Go 自身工具的位置,放错会导致 go build 异常。
bee new 创建失败:项目没在 $GOPATH/src 下
bee new myapp 报 cannot find package "myapp/controllers" 或路由不注册、模板不渲染,基本是目录位置错了。Beego 的 bee 工具仍依赖传统 GOPATH 路径解析逻辑,即使启用了 go.mod,也必须在 $GOPATH/src 下初始化。
正确操作顺序:
- 先运行
go env GOPATH确认路径 - 进入
$GOPATH/src目录:cd $GOPATH/src - 再执行
bee new myapp—— 不要先mkdir myapp && cd myapp && bee new .
否则导入路径推导失败,import "myapp/controllers" 就会找不到包。
beego.Run() 报 undefined:v1 和 v2 导入路径混用
运行 bee run 或 go build 提示 undefined: beego.Run,说明代码还在用 v1 写法,但装的是 v2。
v2 的模块结构已完全拆分,必须同步改三处:
- 导入路径从
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 }
漏改任意一项,编译直接失败——v2 不支持 replace 兼容 v1 代码,也不提供兜底。
go mod tidy 后 still missing go.sum entry
新项目 bee new demo 后立刻 bee run 报 missing go.sum entry,这不是 Beego 缺依赖,而是 Go Modules 校验机制在起作用:声明了依赖但还没同步校验和。
解决只需一步:go mod tidy,但前提是当前目录是模块根(有 go.mod)且代理生效。
若仍失败,大概率是 GOPROXY 没生效:
- 执行
go env -w GOPROXY=https://goproxy.cn,direct - 极少数情况是本地缓存损坏,可清空:
go clean -modcache,再重试
注意:这个错误和 Beego 版本无关,v2.3.5 同样会触发,纯属 Go Modules 行为。











