登录
首页 >  Golang >  Go问答

导入库时出现问题版本与源代码不匹配

来源:stackoverflow

时间:2024-03-02 13:36:30 120浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《导入库时出现问题版本与源代码不匹配》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我使用下载了 go-redis 客户端

go mod init github.com/my/repo
go get github.com/go-redis/redis/v8

但它显示找不到包“go.opentelemetry.io/otel/api/trace”。所以我从 ${gopath}/src/github.com 中删除了 go-redis,然后尝试再次运行它

go get github.com/go-redis/redis/v8

但它什么也没做。不显示任何错误或任何消息。但是当我尝试导入包时它说

在以下任一位置找不到包“github.com/go-redis/redis/v8”: /usr/lib/go/src/github.com/go-redis/redis/v8 (来自 $goroot) /home/username/go/src/github.com/go-redis/redis/v8 (来自 $gopath)

我尝试了 go mod tidy go mod clean 但没有成功。我该怎么办?


解决方案


  1. ls $GOPATH ,如果没有显示你的golang库源路径,你应该先设置路径,
  2. 如果第 1 点可以,您应该执行:go mod tidy

tidy 参数让你使用同步方法下载包,而不需要单独执行 go get 。

我宁愿使用 go Vendoring,它会将你的依赖项添加到供应商/,并且 -mod=vendor 会告诉 golang在本地搜索依赖项。

  1. 删除 go.sum
  2. 输入 export GOFLAGS=-mod=vendor
  3. 输入 go mod tidy && go modvendor

如果无法导出变量,请使用带有前缀 GOFLAGS=-mod=vendor 的 go run 和 go build,例如 GOFLAGS=-mod=vendor go run cmd/main/main.go

不要忘记将vendor/添加到您的.gitignore

到这里,我们也就讲完了《导入库时出现问题版本与源代码不匹配》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>