【问题标题】:Inconsistent internal package errors with go getgo get 不一致的内部包错误
【发布时间】:2020-05-03 14:03:07
【问题描述】:

我正在尝试go get go.etcd.io/etcd/tools/benchmark

以前这一直有效,完美无缺。但是,当我目前尝试这样做时,我也没有遇到任何错误,而且我失败了:

go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:28:2: use of internal package google.golang.org/grpc/internal/buffer not allowed
go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/clientconn.go:49:2: use of internal package google.golang.org/grpc/internal/resolver/dns not allowed
go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/clientconn.go:50:2: use of internal package google.golang.org/grpc/internal/resolver/passthrough not allowed

我第一次在新的go-1.13 安装上运行它时它可以工作,但接下来的几次它都像上面一样失败了。

据我所知,在过去的 8 个月里,回购协议没有改变,我尝试了各种 golang 版本,但到目前为止都失败了(第一次尝试时禁止 go-1.13...) .

任何调试此问题的帮助将不胜感激!

【问题讨论】:

  • 这看起来像是go.etcd.io/etcd/tools/benchmark 包缺少供应商包的问题。如果您使用模块并忽略供应商,它可能会起作用(如果您在 GOPATH 工作,请设置 GO111MODULE=on
  • 这似乎是 etcd 的问题。 gRPC Go 团队成员just filed an issue on their repo for it

标签: go etcd


【解决方案1】:

我想您可以尝试从go.etcd.io/etcd repo 中删除 vendor 文件夹。同时禁用vendoring mode。它应该可以工作。

【讨论】:

    【解决方案2】:

    我有一个解决方法和一个官方修复。

    解决方法:

    在这里,我定义了一个 go.mod,然后使用了以前版本的库。

    官方修复:

    这是在上游修复的,因此其他人不应该遇到这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 2017-02-17
      相关资源
      最近更新 更多