我第一次尝试使用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,它看起来不错。
有关详细信息,请参阅以下更新。
我该如何克服这种情况?(我自己的回购也收到了相同的错误消息)
- 更新日期:**
下面是我如何得到上述错误的完整日志:
- 由https://github.com/mkideal/cli/blob/master/_examples/015-file制备
/tmp/015-file
- 执行
go mod init
- 那么
go build
现在的细节:
$ 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
6条答案
按热度按时间f2uvfpb91#
尝试清除缓存:
go clean -modcache
有关此命令如何工作的详细信息,请使用
go help clean
8cdiaqws2#
在我的情况下,清理缓存没有帮助。
在项目根目录中运行
go install
会打印no Go files in ...
,这是根本原因,同时运行go install gitlab.com/....
会打印有关丢失包的信息。必须做的是使用
main
函数在项目根目录中创建一个go文件。dkqlctbz3#
go version go1.14.3 linux/amd64
我不知道哪一个解决了问题(或两个都解决了),现在AOK。
rsaldnfx4#
我也遇到过同样的错误,但在我的例子中,我试图导入一个只提供资源文件而没有go pkgs的模块,在模块中添加一个空的go文件和一个包声明就解决了这个问题。
of1yzvn45#
在我的例子中,go.mod文件在src下,在将go.mod文件移动到一个级别之后,它就可以工作了
参考以下示例,
出现“未找到软件包”错误时的目录结构
修复后的目录结构
e37o9pze6#
我也遇到过类似的问题。在我的例子中,
package
的名称与它所在的文件夹的名称不匹配。