我的环境是
go1.17.2 Windows AMD64
和 go env GO111MODULE=on
。
我在代码中添加了
import "github.com/go-redis/redis/v8"
。我执行go install github.com/go-redis/redis/v8@latest
,但结果是package github.com/go-redis/redis/v8 is not a main package
。
当我执行go run main.go
时,它在导入行cannot find package
处显示github.com/go-redis/redis/v8
。
我的操作或环境配置有什么问题?
go.mod
的内容(简单的go mod init
& go mod tidy
):
module ...
go 1.17
require github.com/go-redis/redis/v8 v8.11.4
require (
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
)
您的
go.mod
的模块名称无效。我在我的环境中尝试类似的模块名称并使用 go build
进行编译,它报告:
$ go build
go: malformed module path "...": invalid path element "..."
尝试使用如下名称:
module tempredis
go 1.17
require github.com/go-redis/redis/v8 v8.11.4
或者使用命令
go mod init tempredis
创建模块,然后添加 github.com/go-redis/redis/v8
的依赖项。
参考文档。
我使用
import "github.com/go-redis/redis"
,并重新启动该过程(包括go mod init
,go mod tidy
,go install
),最终显示正确的结果。但是 go redis 的版本会自动在 v6.15.9+incompatible
文件中更改为 go.mod