登录
首页 >  Golang >  Go问答

“找不到当前目录中的 go.mod 文件”

来源:stackoverflow

时间:2024-03-13 14:36:29 235浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《“找不到当前目录中的 go.mod 文件” 》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我正在尝试为围绕 gcp 的项目构建 dockerfile。 我使用的是 go 版本 1.17,但 get 命令失败,提示找不到 go.mod,但它与 dockerfile 存在于同一目录中。我已经尝试过 go mod initgo mod tidy 但我仍然遇到相同的错误。这是我的环境变量和我的文件:

go111module="auto"
goarch="amd64"
gobin=""
gocache="/home/name/.cache/go-build"
goenv="/home/name/.config/go/env"
goexe=""
goexperiment=""
goflags=""
gohostarch="amd64"
gohostos="linux"
goinsecure=""
gomodcache="/home/name/work/pkg/mod"
gonoproxy=""
gonosumdb=""
goos="linux"
gopath="/home/name/work"
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.17.1"
gccgo="gccgo"
ar="ar"
cc="gcc"
cxx="g++"
cgo_enabled="1"
gomod="/home/name/workspace/professional-services/tools/gcs2bq/go.mod"
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 -fno-caret-diagnostics -qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3855548593=/tmp/go-build -gno-record-gcc-switches"

我的工作目录中的文件列表:

name@vm-gcs2bq:~/workspace/professional-services/tools/gcs2bq$ ls
dockerfile  bigquery.schema   datastudio.png           gcs2bq.avsc  go.mod  main.go
readme.md   credentials.json  gcs2bq-custom-role.yaml  gcs2bq.yaml  go.sum  run.sh

我在 dockerfile 中的工作目录已正确设置(gcs2bq 目录),当尝试构建它时,我得到:

Step 6/16 : RUN go get -v ./...
 ---> Running in ebaa284887cf
go: go.mod file not found in current directory or any parent directory; see 'go help modules'

我还是个新手,主要是 c 和 python,我读到包在这种语言中以不同的方式管理,但我认为我也正确设置了路径。如果我错了请纠正我。

感谢您的帮助,如果需要,请询问更多详细信息。

提前致谢!


正确答案


好的,我解决了我的问题。

首先,我的 workdir 没有指向正确的目录: workdir /go/src/github.com/rosmo/gcs2bq 而不是 workdir /work/src/github.com/rosmo/gcs2bq 但这只是因为我对已安装的软件包使用 /work 而不是 /go。

然后我在 copy main.go . 命令后添加了以下内容:

RUN  go mod init v1
RUN go mod tidy

它创建了“丢失的”go.mod 文件并正确安装了所需的依赖项/包。

构建的其余部分完全正常。

感谢您的帮助。

终于介绍完啦!小伙伴们,这篇关于《“找不到当前目录中的 go.mod 文件” 》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>