Golang中go get报错:找到模块但缺少包的问题如何解决

Golang中go get报错:找到模块但缺少包的问题如何解决 大家好!我是这个论坛的新手。我的问题如下:

尝试获取 github.com/open-telemetry/opentelemetry-operator/apis/v1beta1 的架构。

❯ go get github.com/open-telemetry/opentelemetry-operator/apis/v1beta1        
go: module github.com/open-telemetry/opentelemetry-operator@upgrade found (v1.51.0), but does not contain package github.com/open-telemetry/opentelemetry-operator/apis/v1beta1

我不确定应该搜索什么来解决这个错误。我尝试在导入路径末尾添加 @v1.51.0,但仍然没有成功。

我该如何导入这个包?

提问前的故障排除步骤:

❯ go clean -cache
❯ go clean -modcache
❯ export GOPROXY=direct

但是当我执行 go get 时,它就直接卡住了。


更多关于Golang中go get报错:找到模块但缺少包的问题如何解决的实战教程也可以访问 https://www.itying.com/category-94-b0.html

2 回复

好的,我找到了解决方案。

这个特定的包有一个混乱的版本历史。真正的最新版本是 v0.99.0。在我的 go get 命令末尾加上 @v0.99.0 就能解决问题。

go get example.com/some/package@v0.99.0

更多关于Golang中go get报错:找到模块但缺少包的问题如何解决的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这个错误表明模块存在,但指定的包路径在模块中不存在。根据错误信息,github.com/open-telemetry/opentelemetry-operator 模块的 v1.51.0 版本确实不包含 apis/v1beta1 这个包。

查看该模块的目录结构,apis/v1beta1 包实际上位于 github.com/open-telemetry/opentelemetry-operator/apis/instrumentation/v1beta1。你需要使用正确的导入路径:

import "github.com/open-telemetry/opentelemetry-operator/apis/instrumentation/v1beta1"

要获取正确的包,执行:

go get github.com/open-telemetry/opentelemetry-operator/apis/instrumentation/v1beta1

或者,如果你想查看模块中可用的包,可以检查其源代码结构。使用以下命令查看模块内容:

# 查看模块的目录结构
go list -m -f '{{.Dir}}' github.com/open-telemetry/opentelemetry-operator@v1.51.0

# 或者直接浏览该版本的源代码
cd $(go list -m -f '{{.Dir}}' github.com/open-telemetry/opentelemetry-operator@v1.51.0)
find . -type f -name "*.go" | head -20

如果你确实需要 v1beta1 API,但路径不同,正确的导入应该是:

package main

import (
    // 正确的导入路径
    instrumentationv1beta1 "github.com/open-telemetry/opentelemetry-operator/apis/instrumentation/v1beta1"
    // 或者如果是其他API组
    // otelv1beta1 "github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
)

func main() {
    // 使用正确的包
    var config instrumentationv1beta1.Instrumentation
    _ = config
}

检查你的 go.mod 文件,确保模块版本正确:

# 查看当前模块信息
go list -m all | grep open-telemetry-operator

# 如果需要,添加正确的版本
go get github.com/open-telemetry/opentelemetry-operator@v1.51.0

然后更新你的导入语句使用正确的包路径。

回到顶部