登录
首页 >  Golang >  Go问答

go mod 找不到依赖项的版本 v0.0.0-00010101000000-000000000000

来源:stackoverflow

时间:2024-03-16 19:06:27 302浏览 收藏

在使用 Go 模块管理依赖项时,用户遇到了无法下载特定依赖项的问题,该依赖项的版本号为 v0.0.0-00010101000000-000000000000。该问题可能是由于使用了不正确的版本号或模块要求中存在错误导致的。

问题内容

我正在尝试通过 go mod 下载项目的所有依赖项;在 cli 上执行 go modvendor 时会出现问题。输出结果如下:

go: finding github.com/hyperledger/fabric-sdk-go v0.0.0-00010101000000-000000000000
go: github.com/hyperledger/[email protected]: unknown revision 000000000000
go: error loading module requirements

导入库的代码是这样的:

import (    
    "github.com/hyperledger/fabric-sdk-go/pkg/client/ledger"
    "github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt"
    "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
)

krakengosdk 是我正在处理的包的名称:

go mod init krakengosdk

有什么解决办法吗?我一段时间以来一直在寻找任何解决方案,但没有找到任何有用的东西。

编辑:我已将 go 版本更新为 1.13;看来错误必须与“github.com/hyperledger/fabric-sdk-go/test/[email protected]”有关:

go get -v github.com/hyperledger/fabric-sdk-go/test/integration@latest
go: finding github.com/hyperledger/fabric-sdk-go/test/integration latest
go get: github.com/hyperledger/fabric-sdk-go/test/[email protected] requires
    github.com/hyperledger/[email protected]: invalid version: unknown revision 000000000000

解决方案


建议的诊断

我建议在控制台中尝试这些命令(bash/dash/fish/zsh):

# 1. create clean project 
$ mkdir /tmp/checkmods && cd /tmp/checkmods  # create clean directory
$ export go111modules=on
$ go version # check that version 1.13
$ go mod init main # name of package does not matter here

# 2. install packages, check output
$ go get -v github.com/hyperledger/fabric-sdk-go/pkg/client/ledger
$ go get -v github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt
$ go get -v github.com/hyperledger/fabric-sdk-go/pkg/fabsdk

# 3. create main.go 
$ touch main.go
$ # edit main.go, add imported packages, import something from those packages
$ go mod vendor 
# do you have problems here? 
# if you encounter problems: 
# - play around  with `go mod tidy`
# - look at `go.mod` and `go.sum`
# - `go mod graph/verify/why` - are your friends

main.go 示例:

package main

import (
    "fmt"
    "github.com/hyperledger/fabric-sdk-go/pkg/client/ledger"
    "github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt"
    "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
)

func main() {
    var (
        cln  &ledger.client
        rsm  &resmgmt.client
        fbs  &fabsdk.fabricsdk
    )
    fmt.printf("%t %t %t\n", cln, rsm, fbs)
}

分析

如果您遇到问题:请说明您在哪一行遇到了什么样的问题。

如果干净启动一切正常:看看您的项目和干净启动之间有什么不同(go.sum 和 go.mod 的差异)

祝你好运!

问题:

  1. 您的 go.mod 文件具体是什么?
  2. 您有适用于 github.com/hyperledger/fabric-sdk-goreplace 指令吗?
  3. 如果您目前没有,您曾经有过吗?

如果您有 replace 指令但没有相应的 require 指令,并且 go 命令会自动添加 zqbczq,则通常会显示长版本 v0.0.0-00010101000000-000000000000 brequire 指令供您使用该长版本。

这可能没问题,但我想知道您是否做了类似添加 replace 之类的操作,但后来删除了 replace,同时将长版本 v0.0.0-00010101000000-000000000000 保留在 require 中。或者类似的东西。

如果您发生以下情况会发生什么:

  1. 删除您可能拥有的 github.com/hyperledger/fabric-sdk-go 的任何 replace 指令
  2. github.com/hyperledger/fabric-sdk-gorequire 更改为:
require github.com/hyperledger/fabric-sdk-go latest
  1. 运行 go list -m all

此外,如果还没有,您应该使用最新版本的 go 1.13,它修复了一些错误,但通常也有更好的错误消息。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>