Beego v2要求Go≥1.16,需启用GO111MODULE=on和GOPROXY代理,用go install安装bee/v2,项目可建于任意路径并自动生成go.mod。

go version 必须 ≥1.16,否则 beego/v2 无法安装
Beego v2.x 要求 Go 版本不低于 1.16,低于该版本执行 go get github.com/beego/beego/v2@latest 会报错:unknown directive: replace 或直接静默失败。这不是网络或代理问题,而是 Go module 机制限制。
验证方式很简单:go version 输出必须形如 go version go1.20.5 linux/amd64(数字部分 ≥1.16)。
- 若版本过低,不要试图用
go get -u升级 Go —— Go 本身不能这样升级,需重新下载安装包覆盖安装 - Mac 用户推荐用
brew install go;Linux 用户建议从 https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 下载对应二进制包解压替换$GOROOT - Windows 用户注意:安装时勾选“Add Go to PATH”,否则后续
bee命令会提示“不是内部或外部命令”
GO111MODULE=on 和 GOPROXY 缺一不可
Beego v2 默认使用 Go Modules,未启用模块或代理配置错误会导致 go get 卡在 github.com/astaxie/beego(v1)或拉取大量私有依赖失败。
正确配置方式(以 Linux/macOS 为例):
export GO111MODULE=on export GOPROXY="https://goproxy.cn,direct"
然后运行 source ~/.bashrc 或 source ~/.zshrc 生效。Windows 用户可在 PowerShell 中执行:
$env:GO111MODULE="on" $env:GOPROXY="https://goproxy.cn,direct"
- 仅设
GO111MODULE=on不设代理,国内用户大概率超时或 403 - 设了代理但没开
GO111MODULE,go get会忽略/v2后缀,误装 v1 版本 - 别用
direct单独作代理值,它不走镜像,等同于没设
bee 工具必须用 go install 安装,go get 已废弃
Go 1.17+ 废弃了 go get 安装可执行工具的能力,改用 go install。若仍执行 go get github.com/beego/bee/v2@latest,命令看似成功,但 bee 命令实际不会出现在 $PATH 中。
正确命令是:
go install github.com/beego/bee/v2@latest
- 安装后检查是否可用:
bee version,输出应类似v2.1.0 - 如果提示 command not found,请确认
$GOBIN(通常为$GOROOT/bin)已加入$PATH - Windows 用户注意:
go install生成的是bee.exe,某些杀毒软件会误报并拦截,需临时放行
项目初始化必须在 $GOPATH/src 外执行
Beego v2 的 bee new 不再强制要求项目位于 $GOPATH/src 下——事实上,开启 GO111MODULE=on 后,项目可建在任意路径,且会自动生成 go.mod。
推荐做法:
mkdir ~/myproject && cd ~/myproject bee new myproject
- 若仍在
$GOPATH/src下执行,bee可能因路径推断错误,在import语句中写入类似"myproject/routers"的相对路径,导致编译报cannot find package - 初始化后务必检查生成的
go.mod文件第一行是否为module myproject,而非module github.com/xxx/myproject(后者易引发 import 冲突) -
bee run启动前,确保当前目录就是main.go所在目录,否则热重载和路由加载会异常
go install 和 go get 的语义切换,这是 2023 年后最常被忽略的坑。


















