本文介绍: 环境变量设置,将其重置为空字符串。这将导致Go工具认为你的项目使用Go Modules,因此它会尝试在GOPATH中查找包,但无法找到你的项目中的非标准库包。这个错误消息表明Go代码尝试导入一个位于项目目录之外的包,并且Go无法找到这个包。首先看了我的包名对应路径没有问题的。设置为 “off“,这意味着你禁用了Go Modules,并且Go工具尝试在GOPATH中查找包。环境变量GOPATH的值即项目路径下的根目录,下面对应的是我的项目路径。在写一个测试引入包名的测试案列中出现了下面的错误。

在写一个测试引入包名的测试案列中出现了下面的错误

D:goworkspacesrcgo_codeproject_01main>go run main.go
main.go:5:2: package go_code/project_01/calutils is not in std (G:go_envsrcgo_codeproject_01calutils)
main.go:6:2: package go_code/project_01/dbutils is not in std (G:go_envsrcgo_codeproject_01dbutils)

这个错误消息表明Go代码尝试导入一个位于项目目录之外的包,并且Go无法找到这个包。首先看了我的包名对应路径没有问题的。 

 排除了路径错误原因接下来检查配置环境变量

 环境变量GOPATH的值即项目路径下的根目录,下面对应的是我的项目路径

当我配置好了以后再次运行还是报上面的错误。这时候就要查看go的环境变量了,输入下面命令进行查看

D:goworkspacesrcgo_codeproject_01main>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:UserswxqAppDataLocalgo-build
set GOENV=C:UserswxqAppDataRoaminggoenv
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:goworkspacepkgmod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:goworkspace
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=G:go_env
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLCHAIN=auto
set GOTOOLDIR=G:go_envpkgtoolwindows_amd64
set GOVCS=
set GOVERSION=go1.21.3
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=D:goworkspacesrcgo_codeproject_01maingo.mod
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:UserswxqAppDataLocalTempgo-build2653196118=/tmp/go-build -gno-record-gcc-switches

 

根据配置信息,问题出在Go Modules开启关闭上。

  1. 当你运行 go env -w GO111MODULE= 时,它将清除 GO111MODULE 环境变量的设置,将其重置为空字符串。这将导致Go工具认为你的项目不使用Go Modules,因此它会尝试在GOPATH中查找包,但无法找到你的项目中的非标准库包。

  2. 当你运行 go env -w GO111MODULE=off 时,它将显式地将 GO111MODULE 设置为 “off”,这意味着你禁用了Go Modules,并且Go工具尝试在GOPATH中查找包。

 修改 GO111MODULE 

go env -w GO111MODULE=off

 这个时候一个包下的文件引入其他包名路径找不到的问题就解决了!

D:goworkspacesrcgo_codeproject_01main>go run main.go
测试
cal 函数执行了!
函数GetConnect执行了!

原文地址:https://blog.csdn.net/qq_50750196/article/details/134261664

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_21134.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注