必须设GOPROXY=https://goproxy.cn,direct并开启GO111MODULE=on,否则go get会因直连境外代理超时失败;direct保障私有模块不被代理,goproxy.cn为国内稳定镜像,设完需用go env验证生效。

go env -w GOPROXY 必须设对
国内直接 go get 会卡在 github.com 或 goproxy.cn 域名解析或连接超时,本质是 Go 模块代理没生效。不设代理,go get -u github.com/beego/beego/v2 很可能卡住或拉取失败。
执行这条命令即可启用国内稳定代理:
go env -w GOPROXY=https://goproxy.cn,direct
注意:direct 是 fallback,表示对私有模块(如公司内网域名)不走代理;如果只用公开包,这个后缀可省略,但保留更稳妥。
- 别用已停服的
https://goproxy.io(2025 年底起多数镜像失效) - 阿里云镜像
https://mirrors.aliyun.com/goproxy/也可用,但响应略慢于goproxy.cn - 设完后用
go env GOPROXY验证输出是否匹配,不是空值或off
GO111MODULE=on 是前提
Beego v2 完全基于 Go Modules,如果 GO111MODULE 是 auto 或 off,go get 会退化为 GOPATH 模式,导致 no required module provides package 错误。
强制开启模块系统:
go env -w GO111MODULE=on
- Windows 用户若用 PowerShell,命令相同;CMD 下需用双引号包裹值:
go env -w "GO111MODULE=on" - 该设置影响全局,无需每次进项目目录再设
- 验证方式:
go env GO111MODULE输出必须是on
bee new 后 go mod tidy 失败?先查代理是否真生效
新建项目后运行 go mod tidy 报 missing go.sum entry 或 verifying github.com/...: checksum mismatch,90% 是代理未穿透到该命令。
原因:某些终端(尤其是 VS Code 内置终端、JetBrains 系列)不会自动加载 shell 的 go env 设置。
- 新开一个干净终端(macOS Terminal / Windows CMD / Linux bash),再执行
go mod tidy - 仍失败?补一句:
go env -w GOPROXY=https://goproxy.cn,direct(覆盖可能的缓存旧值) - 极少数情况是本地模块缓存损坏,执行
go clean -modcache后重试
Mac/Linux 用户 PATH 里漏了 $GOPATH/bin 就等于没装 bee
bee 二进制文件默认生成在 $GOPATH/bin,不是 $GOROOT/bin。PATH 没包含它,bee version 就会报 command not found,和代理无关。
确认步骤:
go env GOPATH
假设输出 /Users/xxx/go,那 bee 实际路径是 /Users/xxx/go/bin/bee(macOS/Linux)或 /Users/xxx/go/bin/bee.exe(Windows)。
- 临时生效(当前终端):
export PATH=$PATH:/Users/xxx/go/bin - 永久生效:把上面那行加到
~/.zshrc(macOS Catalina+)或~/.bash_profile(旧版 macOS/Linux) - 别手动复制
bee到/usr/local/bin—— 权限和更新会出问题
代理配置本身很简单,难的是它要和 GO111MODULE、GOPATH/bin、终端环境三者咬合。漏掉任意一环,安装就会卡在某个看似无关的错误上——比如 undefined: beego.Run,其实根源可能是 go mod tidy 因代理失效而没拉全依赖,导致 v2 包根本没进本地缓存。


















