0

我使用下载了 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但没有奏效。我应该怎么办?

4

2 回答 2

1
  1. ls $GOPATH,如果没有显示你的golang库源路径,你应该先设置路径,
  2. 如果第 1 点能够,你应该这样做:go mod tidy

tidy 参数使您使用同步方法进行下载包,而无需单独执行 go get。

于 2020-10-26T12:27:00.427 回答
0

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

  1. 删除 go.sum
  2. 类型export GOFLAGS=-mod=vendor
  3. 类型go mod tidy && go mod vendor

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

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

于 2020-10-26T15:10:26.153 回答