英文:
go 1.14 to 1.17 update -> modules not working anymore
问题
在将Go从1.14更新到1.17之后,我遇到了这个错误:
main.go:10:2: 没有所需的模块提供了 github.com/gin-gonic/gin 包:\
在当前目录或任何父目录中找不到 go.mod 文件;\
请参阅 'go help modules'
我过去可以通过 go get github.com/gin-gonic/gin
来解决这个问题,但现在这个方法不起作用了。有什么改变吗?
英文:
After updating Go from 1.14 to 1.17 I'm getting this error:
main.go:10:2: no required module provides package github.com/gin-gonic/gin: \
go.mod file not found in current directory or any parent directory; \
see 'go help modules'
I used to be able to fix that with go get github.com/gin-gonic/gin
but now that doesn't help. Did something change?
答案1
得分: 3
我可以重现这个问题,如果我有一个像这样的文件:
package hello
import _ "github.com/gin-gonic/gin"
并运行以下命令:
go mod init hello
go build
修复方法是运行以下命令:
go mod tidy
英文:
I can repro this if I have a file like this:
package hello
import _ "github.com/gin-gonic/gin"
and run these commands:
go mod init hello
go build
Fix for me is running this command:
go mod tidy
答案2
得分: 3
从Go 1.16开始,“无论当前工作目录或父目录中是否存在go.mod
文件,模块感知模式都会默认启用。更准确地说,GO111MODULE
环境变量现在默认为on
。”
请参阅Migrating to Go Modules博文,了解如何进行迁移的快速概述,或者参阅Tutorial: Create a Go Module获取更详细的信息。
英文:
As of Go 1.16, “Module-aware mode is enabled by default, regardless of whether a go.mod
file is present in the current working directory or a parent directory. More precisely, the GO111MODULE
environment variable now defaults to on
.”
See the Migrating to Go Modules blog post for a quick overview of how to migrate, or Tutorial: Create a Go Module for more detail.
答案3
得分: 0
根据文档,我们必须在go 1.17+
中使用go install example.com/cmd@latest
代替go get
。
英文:
According to documentation we must use go install example.com/cmd@latest
instead of go get
for go 1.17+
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论