离线安装Beego需跳过模块联网机制:①手动下载v2源码ZIP解压至$GOPATH/src/github.com/beego/beego,执行go install;②同法安装bee源码并设BEE_TEMPLATE_PATH指向本地模板根目录;③确保$GOBIN加入PATH且有执行权限。

离线安装 beego 时,go get 会失败,必须跳过网络拉取
离线环境里执行 go get github.com/astaxie/beego 必然卡在解析 proxy.golang.org 或直接报 no Go files in ...。这不是配置问题,是 Go 模块机制默认要联网 fetch 依赖和版本信息。你得绕过模块自动下载流程,用「源码直投 + 本地 install」方式。
关键动作有三步:
- 手动下载
beego最新版 zip 包(比如从https://github.com/astaxie/beego/releases下v2.1.0.zip) - 解压后重命名为
beego,完整路径放入$GOPATH/src/github.com/astaxie/beego - 进入该目录,执行
go install(不是go build),生成的beego.a会落进$GOPATH/pkg,供后续项目 import 使用
bee 工具不能只放 bin 目录,必须确保可执行且能 resolve 依赖
很多人把下载好的 bee 单文件(如 bee_windows_amd64.exe)丢进 $GOBIN 就以为完事了,结果运行 bee new myapp 报错:cannot find package "github.com/beego/bee/cmd" —— 这是因为 bee 是个 Go 程序,离线时它自己也要能编译或加载本地模块。
正确做法是:
- 下载
https://github.com/beego/bee的源码 zip(注意:不是 release 页面的二进制,是源码) - 解压并重命名为
bee,放到$GOPATH/src/github.com/beego/bee - 进入该目录,执行
go install;若提示go: go.mod file not found,先go mod init github.com/beego/bee再go install - 确认
$GOBIN/bee.exe存在且有执行权限(Windows 可忽略 chmod,但需确保无杀毒软件拦截)
离线时 bee new 仍可能失败,根源在模板依赖未本地化
bee new myapp 默认会 clone 模板仓库(如 https://github.com/beego/bee/tree/master/templates),离线时直接 panic:Get "https://api.github.com/...": dial tcp: lookup api.github.com: no such host。
解决方法不是配代理,而是提前准备好模板:
- 去
https://github.com/beego/bee/tree/master/templates页面,点「Download ZIP」,解压到本地某处(如C:\templates) - 设置环境变量:
goenv -w BEE_TEMPLATE_PATH=C:\templates(Windows)或export BEE_TEMPLATE_PATH=/path/to/templates(Linux/macOS) - 再运行
bee new myapp,它就会跳过网络请求,直接读取本地模板
注意:BEE_TEMPLATE_PATH 必须指向包含 beego、api、library 等子目录的根目录,不是 zip 解压后的第一层嵌套目录。
常见坑:GOPATH 和 GOBIN 路径不一致导致命令找不到
很多用户把 bee.exe 手动复制进 $GOBIN,但终端始终提示 'bee' is not recognized 或 command not found。根本原因不是没复制,而是 $GOBIN 没加进系统 PATH。
验证和修复步骤:
- 执行
go env GOPATH和go env GOBIN,确认两个路径输出明确(如C:\Users\xxx\go和C:\Users\xxx\go\bin) - 检查当前终端的
PATH是否包含该GOBIN路径(Windows 用echo %PATH%,Linux/macOS 用echo $PATH) - 若没有,Windows 需在「系统属性 → 高级 → 环境变量」中将
%GOPATH%\bin加入用户 PATH;Linux/macOS 需在~/.bashrc或~/.zshrc中追加export PATH=$PATH:$GOBIN - 新开终端再试
bee version,不要复用旧终端
最易被忽略的是:即使 GOBIN 正确,如果 go install 执行时当前工作目录不在源码根下,或者 go.mod 缺失,bee.exe 也不会生成 —— 宁可多跑一遍 go list -m 确认模块名是否对得上,也别盲目复制二进制文件。











