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

oxosxuxt  于 2023-03-27  发布在  Go
关注(0)|答案(5)|浏览(371)

我试图通过go mod下载一个项目的所有依赖项;在CLI上执行go mod vendor时出现问题。输出如下:

go: finding github.com/hyperledger/fabric-sdk-go v0.0.0-00010101000000-000000000000
go: github.com/hyperledger/fabric-sdk-go@v0.0.0-00010101000000-000000000000: 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/integration@v0.0.0-20190918153951-5d7ae7a5be8f“:

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/integration@v0.0.0-20190918153951-5d7ae7a5be8f requires
    github.com/hyperledger/fabric-sdk-go@v0.0.0-00010101000000-000000000000: invalid version: unknown revision 000000000000
umuewwlo

umuewwlo1#

问题:
1.什么是你的确切go.mod文件?
1.是否有针对github.com/hyperledger/fabric-sdk-goreplace指令?
1.如果你现在没有,你曾经有过吗?
如果您有一个replace指令,但没有相应的require指令,则通常会显示该长版本v0.0.0-00010101000000-000000000000,并且go命令会自动为您添加一个使用该长版本的require指令。
这可能没问题,但我想知道您是否添加了replace,但后来删除了replace,同时在require中保留了长版本v0.0.0-00010101000000-000000000000
如果您:
1.删除您可能拥有的github.com/hyperledger/fabric-sdk-go的任何replace指令
1.将github.com/hyperledger/fabric-sdk-gorequire更改为:

require github.com/hyperledger/fabric-sdk-go latest

1.运行go list -m all
此外,如果还没有,你应该使用Go 1.13的最新版本,它修复了一些错误,但通常也有更好的错误消息。

2exbekwf

2exbekwf2#

这发生在我身上是因为使用了替换标志并删除了替换标志。这可以通过使用下面的两个命令来纠正。

go mod edit -droprequire=github.com/hyperledger/fabric-sdk-go

上述命令将删除依赖项

go mod tidy

以上命令重新下载依赖项。

i7uq4tfw

i7uq4tfw3#

建议诊断

我建议在控制台中尝试这些命令(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)
}

分析

如果您遇到问题:解释你在哪一行遇到了什么样的问题。
如果一切正常,启动干净:看看你的项目和cleanstart有什么不同(go.sum和go.mod的不同)
祝你好运!

i2loujxw

i2loujxw4#

错误-尝试为导入它的特定模块提取的版本已过期或无效。
解决方案-例如,在我的情况下,我得到以下错误:

go: downloading github.com/myk4040okothogodo/tutorial/gen/go/proto/books v0.0.0-00010101000000-000000000000
github.com/myk4040okothogodo/tutorial/books imports
    github.com/myk4040okothogodo/tutorial/books/server imports
    github.com/myk4040okothogodo/tutorial/gen/go/proto/books: github.com/myk4040okothogodo/tutorial/gen/go/proto/books@v0.0.0-00010101000000-000000000000: invalid version: unknown revision 000000000000

如你所见,我的模块“github.com/myk4040okothogodo/tutorial/books/server“导入了另一个模块“github.com/myk4040okothogodo/tutorial/gen/go/proto/books:“,这个导入抛出了上面的错误,所以我转到我的go.mod文件并做了以下更改:
检查上面的第12行,我把**“latest”**代替了版本号,即“v0.0.0...”。
我保存文件,然后运行“go mod tidy”
然后编译器将“latest”指定更改为最新版本,即在运行mod tidy命令后,它将如下所示。
PS:检查我做修改的包,不要改错进口

2skhul33

2skhul335#

我不确定这个解决方案是否适用于每个人,但我刚刚做了go get PACKAGE_WITH_ISSUE,所以在您的情况下:

go get github.com/hyperledger/fabric-sdk-go

相关问题