You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

搭建Go工作区时出现package apps/app1不在GOROOT的错误

问题描述

项目结构:

apiv3
    - model
    - controller
    - view
apps
    - app1
    - app2
    - app2

在apiv3中以apps/app1的导入路径引用apps包,已按Go工作区步骤创建工作区,Go版本1.18.3,GO ENV输出:

GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/pc6/.cache/go-build"
GOENV="/home/pc6/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/pc6/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/pc6/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18.3"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK="/home/pc6/workspace2/go.work"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1440253706=/tmp/go-build -gno-record-gcc-switches"

在工作区目录执行go run apiv3时,报错:package apps/app1 is not in GOROOT (/usr/local/go/src/apps/app1)

解决方案
  • 将apiv3和apps转为Go模块:分别进入两个目录执行初始化命令:
    cd apiv3
    go mod init apiv3
    
    cd ../apps
    go mod init apps
    
  • 检查go.work文件配置:确保工作区文件正确包含两个模块,内容需类似:
    go 1.18
    
    use (
        ./apiv3
        ./apps
    )
    
  • 确认导入路径合法性:apiv3中导入apps/app1时,需保证apps/app1目录下存在Go文件,且文件的package声明为app1。
  • 修正运行命令:在go.work所在的工作区目录执行:
    go run ./apiv3
    

(使用./apiv3明确指定本地模块路径,避免Go尝试从GOROOT查找)

内容的提问来源于stack exchange,提问作者Amandeep kaur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:10:27