Go代码引入自己创建的包,运行时出现 package 包路径 is not in GOROOT 问题
E:studyCodecodego_projectsrcgo_code20211123factorymain>go run main.go main.go:5:2: package go_code/20211123/factory/model is not in GOROOT (E:progranfilesgosrcgo_code20211123factorymodel)
在终端输入 go env
C:UsersadministratorsXu>go env set GO111MODULE=on set GOARCH=amd64 set GOBIN= set GOCACHE=C:UsersadministratorsXuAppDataLocalgo-build set GOENV=C:UsersadministratorsXuAppDataRoaminggoenv set GOEXE=.exe set GOEXPERIMENT= set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOINSECURE= set GOMODCACHE=E:studyCodecodeGOpkgmod set GONOPROXY= set GONOSUMDB= set GOOS=windows set GOPATH=E:studyCodecodeGO set GOPRIVATE= set GOPROXY=https://goproxy.cn,direct set GOROOT=E:progranfilesgo set GOSUMDB=sum.golang.org set GOTMPDIR= set GOTOOLDIR=E:progranfilesgopkgtoolwindows_amd64 set GOVCS= set GOVERSION=go1.17.3 set GCCGO=gccgo set AR=ar set CC=gcc set CXX=g++ set CGO_ENABLED=1 set GOMOD=NUL set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO_LDFLAGS=-g -O2 set PKG_CONFIG=pkg-config set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:UsersADMINI~1AppDataLocalTempgo-build3247994683=/tmp/go-build -gno-record-gcc-switches
GO111MODULE
用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto。
- GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
- GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
- GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。
在使用模块的时候,GOPATH 是无意义的,不过它还是会把下载的依赖储存在 $GOPATH/src/mod 中,也会把 go install 的结果放在 $GOPATH/bin 中。
解决方案:
将GO111MODULE修改为off,在终端输入
go env -w GO111MODULE=off
再次运行main包
go run main.go
{张三 96.9}



