Revel 本地安装已不依赖 GOPATH,需确保 GO111MODULE=on、Go≥1.16、用 go install 安装 CLI、项目在任意路径通过 go mod init 和 revel new 初始化,并保证 module 名与 revel run 参数完全一致。

Revel 本地安装现在基本不依赖 GOPATH,但旧教程残留的路径陷阱仍会导致 revel run 报 “not found in GOPATH” 错误——核心在于 CLI 版本、Go Modules 状态和项目初始化方式是否匹配。
确认 Go 环境与 Modules 状态
Revel 当前(v1.x)已原生支持 Go Modules,GO111MODULE 必须为 on 或未设置(Go 1.16+ 默认开启)。若仍报错,先检查:
- 运行
go env GO111MODULE,输出不是on就执行go env -w GO111MODULE=on - 运行
go version,确保 ≥ 1.16;低于此版本建议升级,否则 Revel CLI 可能无法识别模块路径 - 不要手动设置
GOPATH来“兼容旧教程”,它反而会干扰模块发现逻辑
安装 revel CLI 工具(非框架包)
注意:你不需要 go get github.com/revel/revel(这是旧版框架源码,现已废弃),只需安装命令行工具:
- 执行
go install github.com/revel/cmd/revel@latest(Go 1.16+ 推荐写法) - 验证安装:
revel version应输出类似v1.0.1的版本号,而非unknown或报 command not found - 如果提示
command not found,说明$GOPATH/bin(或$HOME/go/bin)未加入PATH,需补上
创建并运行新项目(Modules 模式)
项目可放在任意路径,无需塞进 $GOPATH/src:
- 新建目录,如
mkdir ~/code/myapp && cd ~/code/myapp - 初始化模块:
go mod init github.com/yourname/myapp(路径仅为导入标识,不需真实存在) - 生成 Revel 骨架:
revel new myapp(注意:参数是项目名,不是路径) - 启动服务:
revel run myapp—— 此时 Revel 会自动读取当前目录下的go.mod,不再查找 GOPATH
若仍报错,大概率是 revel new 执行位置不对(必须在空目录下运行),或当前目录已有 go.mod 但 module path 与项目名不一致(revel new 会按 module name 创建子目录,名称必须匹配)。
常见失败场景与绕过方式
遇到 revel run: app not found 或反复提示 GOPATH 路径错误,优先排查以下三点:
-
revel new myapp后生成的目录是myapp/,你必须cd myapp再执行revel run myapp,不能在父级目录运行 - 项目根目录下必须有
app/conf/app.conf和go.mod;缺少前者会提示配置错误,后者缺失则退化为 GOPATH 模式 - Windows 用户注意路径分隔符和权限:避免将项目放在
C:\Program Files\等受保护目录,CLI 可能无权写入临时文件
最易被忽略的是:Revel v1.x 不再从 src 目录推导应用路径,它严格依赖 go.mod 中的 module 名与 revel run 后的参数名一致——哪怕只差一个大小写,都会导致找不到 app。

















