当我执行`go install`时,它报告“不是主包”

问题描述 投票:0回答:2

我的环境是

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 go-modules go-redis
2个回答
2
投票

您的

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
的依赖项。

参考文档


1
投票

我使用

import "github.com/go-redis/redis"
,并重新启动该过程(包括
go mod init
go mod tidy
go install
),最终显示正确的结果。但是 go redis 的版本会自动在
v6.15.9+incompatible
文件中更改为
go.mod

© www.soinside.com 2019 - 2024. All rights reserved.