go模块@latest找到但不包含包

axr492tv  于 2023-02-27  发布在  Go
关注(0)|答案(6)|浏览(405)

我第一次尝试使用go模块,下面的错误信息告诉我什么?

module github.com/mkideal/cli@latest found (v0.2.2), but does not contain package github.com/mkideal/cli
module github.com/mkideal/cli@latest found (v0.2.2), but does not contain package github.com/mkideal/cli/ext

这种情况发生在go build期间,而go get正好可以:

$ go get -v github.com/mkideal/cli
go: github.com/mkideal/cli upgrade => v0.2.2

但不是go get -v ./...,它给了我和上面一样的错误。我的代理设置看起来还可以:

$ go env | grep GOPROXY
GOPROXY="https://proxy.golang.org,direct"

这是我尝试使用的go模块/包的问题,还是我自己的代码的问题?--我看了看https://github.com/mkideal/cli/blob/master/go.mod,它看起来不错。
有关详细信息,请参阅以下更新。
我该如何克服这种情况?(我自己的回购也收到了相同的错误消息)

    • 更新日期:**

下面是我如何得到上述错误的完整日志:

现在的细节:

$ cd /tmp/015-file

$ GO111MODULE=on

$ go mod init github.com/mkideal/cli/015-file
go: creating new go.mod: module github.com/mkideal/cli/015-file

$ cat go.mod 
module github.com/mkideal/cli/015-file

go 1.14

$ go build
go: finding module for package github.com/mkideal/cli
go: finding module for package github.com/mkideal/cli/ext
main.go:6:2: module github.com/mkideal/cli@latest found (v0.2.2), but does not contain package github.com/mkideal/cli
main.go:7:2: module github.com/mkideal/cli@latest found (v0.2.2), but does not contain package github.com/mkideal/cli/ext

$ go get -v github.com/mkideal/cli
go: github.com/mkideal/cli upgrade => v0.2.2

$ go get -v ./...
go: finding module for package github.com/mkideal/cli
go: finding module for package github.com/mkideal/cli/ext
go: finding module for package github.com/mkideal/cli
go: finding module for package github.com/mkideal/cli/ext
main.go:6:2: module github.com/mkideal/cli@latest found (v0.2.2), but does not contain package github.com/mkideal/cli
main.go:7:2: module github.com/mkideal/cli@latest found (v0.2.2), but does not contain package github.com/mkideal/cli/ext

$ go version
go version go1.14.1 linux/amd64
f2uvfpb9

f2uvfpb91#

尝试清除缓存:go clean -modcache
有关此命令如何工作的详细信息,请使用go help clean

8cdiaqws

8cdiaqws2#

在我的情况下,清理缓存没有帮助。
在项目根目录中运行go install会打印no Go files in ...,这是根本原因,同时运行go install gitlab.com/....会打印有关丢失包的信息。
必须做的是使用main函数在项目根目录中创建一个go文件。

dkqlctbz

dkqlctbz3#

  • 更新为go version go1.14.3 linux/amd64
  • 清除Go模块缓存

我不知道哪一个解决了问题(或两个都解决了),现在AOK。

rsaldnfx

rsaldnfx4#

我也遇到过同样的错误,但在我的例子中,我试图导入一个只提供资源文件而没有go pkgs的模块,在模块中添加一个空的go文件和一个包声明就解决了这个问题。

of1yzvn4

of1yzvn45#

在我的例子中,go.mod文件在src下,在将go.mod文件移动到一个级别之后,它就可以工作了
参考以下示例,

出现“未找到软件包”错误时的目录结构

dir1/src/
   main.go
   go.mod
   go.sum

修复后的目录结构

dir1/
   go.mod
   go.sum
   src/
     main.go
e37o9pze

e37o9pze6#

我也遇到过类似的问题。在我的例子中,package的名称与它所在的文件夹的名称不匹配。

相关问题