错误信息“ go: go.mod 文件未在工作目录或任何父目录中找到,请参见‘ go help module’”

我刚刚升级到 Go-Go 版本1.16.2 Linux/amd64的新版本,在构建 你好,世界! 例子时遇到了一个错误:

Go.mod 文件在工作目录或任何父目录中都找不到,请参阅“ go help module”

甚至当我按照 那个帖子的修复程序执行时,它也不起作用。我设置了这些变量,然后重新构建:

GO111MODULE=on
GOPROXY=https://proxy.golang.org,direct

不幸的是,同样的问题。

264816 次浏览

是的,只要按照教程和对我来说,这是做 go mod init test3创建一个模块。没有其他人已经从旧版本升级或者其他人只是正确地理解它,我猜测。

改变这一点:

go env -w GO111MODULE=auto

回到这里:

go env -w GO111MODULE=off

我在构建 Docker 映像时也犯了同样的错误:

docker build . -t ms-c3alert:1.0.6

错误细节:

Step 11/21 : ENV GO111MODULE=on


---> Using cache
---> 1f1728be0f4a
Step 12/21 : RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o c3alert .
---> Running in ee4b3d33d1d2
go: go.mod file not found in current directory or any parent directory; see 'go help modules'
The command '/bin/sh -c CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o c3alert .' returned a non-zero code: 1

我已经通过在 Dockerfile 中添加以下代码行解决了这个问题。以前,它需要有一个围棋项目的模块,根据指南在以前的职位:

COPY go.mod .
COPY go.sum .
RUN go mod download

默认情况下,从1.16开始,Go 以模块感知模式构建包。

导航到包含 Go 文件的文件夹并运行:

go mod init <modulename>.

这里创建了一个 去吧 Mod文件,这个目录将成为新创建的模块的根目录。有关 Go 模块的信息,请参阅 给你

如果要构建 Docker 映像,请从项目目录中在 Dockerfile文件中添加以下代码行:

RUN go mod init

或者你目录里的这个:

go mod init

这对我很有效:

FROM golang:alpine


WORKDIR /go/src/app


ADD . .
RUN go mod init


RUN go build  -o /helloworld


EXPOSE 6111


CMD ["./helloworld"]

我试图在我的 Windows 本地机器上运行 go build命令,结果遇到了 go: go.mod file not found in current directory or any parent directory; see 'go help modules'错误。

我是这样解决的:

  • 首先,通过运行 $ pwd获得应用程序的根目录,并得到类似于 /c/projects/go-projects/go-server的响应
  • 然后我运行 $ go mod init c/projects/go-projects/go-server

这完全消除了错误,我能够使用命令 $ ./go-web运行服务器

PS : 需要注意的是,我在自己的机器上运行 Linux 命令时使用的是用于 Windows 的 Git Bash Linux 终端,在 Windows 中默认安装的是用于 Windows 的 git。

尝试运行以下命令

  • 进入 mod init example.com/m’初始化 v0或 v1模块
  • 去改装 example.com/m/v2’初始化 v2模块

首先确保您的 GO111MODULE 值设置为“ auto”。 你可以从以下地方检查:

go env

如果未设置为“ auto”,则运行:

go env -w GO111MODULE=auto

转到终端机的工作目录并运行:

go mod init
go mod tidy

你可以走了!

我最近发现“无需模块”< strong > 是在尝试运行/构建一个不存在或者输入错误的 Go-file 时得到的错误消息。

我的学生把他的文件命名为“文件名. 去”。大写的‘ G’使它成为一个无效的 Go 文件,但是 VisualStudio 代码仍然认出它是一个 Go 文件,所以花了很长时间才发现它。

我花了很长时间来解决这个问题,试图理解模块和文件夹之间的关系,而问题出在打字错误上。

一个令人困惑的错误消息,实际上是 Go 文件,而不是“丢失”的 。现代化文件。

  1. 不要 将 Go 安装到你的 home 文件夹中。例如 ~/go,因为这个文件夹将由 To 在进一步的第三方库安装中使用

  2. 下载并解压缩安装 ZIP 文件到另一个地方,例如 /workspace/tools/go,并设置您的 PATH=/workspace/tools/go/bin

就是这样。没有必要做 go mod init

只需转到父目录并运行 go mod init "child/project root directory name"

我正在使用去 V1.18。我的问题是 go work init。 更多细节请点击这里:
在 VScode 中安装代理后,VScode 显示错误

我必须这么做:

$ cd /my/parent/dir
$ go work init
$ go work use project-one
$ go work use project-two

现在我能做的是:

$ cd {root directory of the module where go.mod is}
$ cd ./project-one
$ go build .
$ go run .