我第一次尝试使用 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
Run Code Online (Sandbox Code Playgroud)
它发生在go build,而go get很好:
$ go get -v github.com/mkideal/cli
go: github.com/mkideal/cli upgrade => v0.2.2
Run Code Online (Sandbox Code Playgroud)
但不是go get -v ./...,这给了我与上述相同的错误。我的代理设置看起来不错:
$ go env | grep GOPROXY
GOPROXY="https://proxy.golang.org,direct"
Run Code Online (Sandbox Code Playgroud)
这是我尝试使用的 go 模块/包的问题,还是我自己的代码的问题?- 我看了一下 https://github.com/mkideal/cli/blob/master/go.mod对我来说似乎很好。
有关详细信息,请参阅以下更新。
我怎样才能克服这种情况?(我自己的回购也收到了相同的错误消息)
更新:
这是我如何收到上述错误的完整日志:
/tmp/015-file从https://github.com/mkideal/cli/blob/master/_examples/015-file准备go mod initgo 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
Run Code Online (Sandbox Code Playgroud)
小智 18
可以运行:
go clean -modcache
更多详情 go help clean
And*_*iep 14
清理 Golang 缓存应该可以完成以下工作:
go clean -cache
go clean -modcache
Run Code Online (Sandbox Code Playgroud)
有关此命令如何工作的更多信息,请使用go help clean. 如果您的测试环境有类似问题,请运行go clean -testcache.
小智 8
就我而言,清理缓存没有帮助。在打印的项目根目录中
运行,这是根本原因,同时运行打印有关丢失包的信息。go installno Go files in ...go install gitlab.com/....
必须做的是在项目根目录中创建一个带有main函数的 go 文件。
就我而言,go.mod 文件位于 src 下,将 go.mod 文件移动到上一级后,它就可以工作了
请参阅下面的示例,
“找不到包”错误时的目录结构
dir1/src/
main.go
go.mod
go.sum
Run Code Online (Sandbox Code Playgroud)
修复后的目录结构
dir1/
go.mod
go.sum
src/
main.go
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11318 次 |
| 最近记录: |