Golang Go语言中 go module 懵逼求助…go mod download 会提示找不到版本,但是我的 go.mod 文件并没有配置这个版本…

发布于 1周前 作者 sinazl 来自 Go语言

Golang Go语言中 go module 懵逼求助…go mod download 会提示找不到版本,但是我的 go.mod 文件并没有配置这个版本…

我的 go mod 文件内容如下:

module ALFX2_REFACTOR

go 1.12

require (
	easybox v0.0.0+incompatible
	github.com/gogf/gf v1.9.7
	github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
	github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 // indirect
	github.com/araddon/dateparse v0.0.0-20190622164848-0fb0a474d195
	github.com/emirpasic/gods v1.12.0
	github.com/gizak/termui/v3 v3.1.0
	github.com/gofrs/uuid v3.2.0+incompatible
	github.com/lib/pq v1.2.0
	github.com/nats-io/nats-streaming-server v0.16.0 // indirect
	github.com/nats-io/stan.go v0.5.0
	github.com/tidwall/gjson v1.3.2 // indirect
	github.com/tidwall/sjson v1.0.4
	github.com/valyala/fasttemplate v1.0.1
	gopkg.in/alecthomas/kingpin.v2 v2.2.6
	gopkg.in/yaml.v3 v3.0.0-20190709130402-674ba3eaed22
)

replace easybox => /Users/praynise/devenv/go/easybox

执行 go mod download 提示如下:

go: finding github.com/gogf/gf v0.0.0+incompatible
go: github.com/gogf/[email protected]+incompatible: unknown revision v0.0.0
go: error loading module requirements

可是我的 go.mod 文件里面根本就没有这个 github.com/gogf/gf v0.0.0+incompatible 啊… 之前开发项目的时候我有自己拉了一个 github.com/gogf/gf 并通过 replace 的方式指向本地,现在 git 上的版本更新了,我想直接用 git 上的,就直接改配置 require 为 github.com/gogf/gf v1.9.7,但是通过 go mod download 仍然去找 v0.0.0,请大神指点这个情况肿么办…


更多关于Golang Go语言中 go module 懵逼求助…go mod download 会提示找不到版本,但是我的 go.mod 文件并没有配置这个版本…的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

17 回复

go mod tidy 试试呢

更多关于Golang Go语言中 go module 懵逼求助…go mod download 会提示找不到版本,但是我的 go.mod 文件并没有配置这个版本…的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


怀疑是 easybox 有问题,其他的复制到我本地是没问题的

easybox 是我自己写的一个本地包,所以用 replace 替换到本地了

go mod tidy 也会去找那个 v0.0.0…

go mod why github.com/gogf/gf
看看哪里引用了,是不是 easybox 里面有引用

用 go mod graph 看看是怎么引入的

另外,gogf 是垃圾。

gogf 是垃圾 此话怎讲?我给 gf 提供过代码,接触下来,群主和开发者都是认真负责的 coder,版本迭代很快,更新的功能也很实用,怎么就成垃圾了

easybox 里面的确是有,我 replace 了,但是还是报了这个错误。看来还是我对 go mod 的理解有问题,非常感谢啦

感谢提供知识点~gogf 我追了很长时间了,可能我不是什么太严谨的程序员吧,gogf 的各种模块给我提供了很大的便利。bug 当然是有,不过可以给作者提 issue 帮助其改进,作者回 issue 的速度感觉还是挺快的。有你感觉不妥的地方,也希望你可以帮助其变得更好(^▽^)

啊,我好菜,这段代码里哪里有 bug 呀。

defer 里面的 err 会把 return 的 err 给覆盖了,io.Copy 即使出错也发现不了。

感谢指正,已修复。

你看看 easybox 里面引用的 gf 是什么版本?另外 replace 只对本地项目有效,不会影响依赖项目。

easybox 之前也引用的本地版,现在都改成 1.9.7 版了,顺便仍 github 上去了,省着以后总本地手动同步了…

你好,关于你遇到的 Go module 问题,这里有几个可能的解决方案和检查点:

  1. 清理缓存: 有时候,Go module 的缓存可能会导致一些奇怪的问题。你可以尝试运行 go clean -modcache 来清理模块缓存,然后再执行 go mod download

  2. 检查 go.mod 文件: 虽然你提到 go.mod 文件没有配置特定版本,但请确保所有依赖项后面都跟着一个版本号,或者至少是 v0.0.0- 这样的伪版本(表示没有指定具体版本)。如果某个依赖项后面没有版本号,Go 会尝试解析一个默认版本,这可能会失败。

  3. 检查替换指令: 查看 go.mod 文件中是否有 replace 指令,这些指令会覆盖默认的依赖解析逻辑,可能会导致你遇到找不到版本的问题。

  4. 网络问题: 确保你的网络环境能够访问 Go module 镜像(通常是 Google 的模块服务)。如果在中国,你可能需要配置 GOPROXY 环境变量来使用国内的镜像。

  5. 依赖项问题: 检查是否有依赖项自身存在问题,比如该依赖项已经不再维护,或者其版本信息有误。

如果上述方法都不能解决问题,建议具体查看错误消息,并根据错误消息中的信息进一步调查。希望这些建议能帮到你!

回到顶部