5 回答

TA貢獻1789條經驗 獲得超10個贊
問題:
您的具體 go.mod 文件是什么?
您有任何
replace
指示嗎github.com/hyperledger/fabric-sdk-go
?如果你現在沒有,那么你曾經有過嗎?
v0.0.0-00010101000000-000000000000
如果您有replace
指令但沒有相應的require
指令,并且該go
命令會自動為您使用該長版本添加指令,則通常會顯示該長require
版本。
這可以很好,但我想知道您是否做了類似添加 a 的操作replace
,但后來刪除了replace
,同時將長版本保留v0.0.0-00010101000000-000000000000
在require
. 或類似的東西。
如果您出現以下情況,會發生什么情況:
刪除您可能擁有的任何
replace
指令github.com/hyperledger/fabric-sdk-go
require
將for更改github.com/hyperledger/fabric-sdk-go
為:
require github.com/hyperledger/fabric-sdk-go latest
跑步
go list -m all
另外,如果還沒有,您應該使用最新版本的 Go 1.13,它修復了一些錯誤,但通常也有更好的錯誤消息。

TA貢獻1780條經驗 獲得超4個贊
由于使用替換標志并刪除替換標志,這發生在我身上??梢允褂靡韵聝蓚€命令來糾正此問題。
go mod edit -droprequire=github.com/hyperledger/fabric-sdk-go
上面的命令刪除了依賴
go mod tidy
上面的命令重新下載依賴項。

TA貢獻2011條經驗 獲得超2個贊
提議的診斷
我建議在控制臺中嘗試這些命令(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 的差異)
祝你好運!

TA貢獻1851條經驗 獲得超3個贊
錯誤- go 嘗試為導入它的特定模塊提取的版本已過時或無效。
解決方案- 例如,在我的例子中,我收到以下錯誤:
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/[email protected]: invalid version: unknown revision 000000000000
正如你在上面看到的,我的模塊“github.com/myk4040okothogodo/tutorial/books/server”導入了另一個模塊“github.com/myk4040okothogodo/tutorial/gen/go/proto/books:”這個導入拋出了上面的錯誤,所以我轉到我的 go.mod 文件并進行以下更改:
1 module github.com/myk4040okothogodo/tutorial/books/server
2
3 go 1.18
4
5 replace github.com/myk4040okothogodo/tutorial/db => ../../db
6
7 replace github.com/myk4040okothogodo/tutorial/gen/go/proto/books => ../../gen/go/proto/books
8
9 require (
10 github.com/arangodb/go-driver v1.3.2
11 github.com/myk4040okothogodo/tutorial/db v0.0.0-00010101000000-000000000000
12 github.com/myk4040okothogodo/tutorial/gen/go/proto/books latest
13 google.golang.org/grpc v1.47.0
14 )
檢查上面第 12 行,其中我輸入“最新”而不是版本號,即“v0.0.0....”
我保存文件,然后運行 “go mod tidy”
然后編譯器將“最新”名稱更改為最新版本,即運行 mod tidy 命令后它將如下所示。
1 module github.com/myk4040okothogodo/tutorial/books/server
2
3 go 1.18
4
5 replace github.com/myk4040okothogodo/tutorial/db => ../../db
6
7 replace github.com/myk4040okothogodo/tutorial/gen/go/proto/books => ../../gen/go/proto/books
8
9 require (
10 github.com/arangodb/go-driver v1.3.2
11 github.com/myk4040okothogodo/tutorial/db v0.0.0-00010101000000-000000000000
12 github.com/myk4040okothogodo/tutorial/gen/go/proto/books v0.0.0-20220601171028-60237b9c9583
13 google.golang.org/grpc v1.47.0
14 )
PS:檢查我進行更改的包,不要更改錯誤的導入

TA貢獻1853條經驗 獲得超18個贊
我不確定這個解決方案是否適合每個人,但我只是這樣做了go get PACKAGE_WITH_ISSUE
,所以就你而言:
go get github.com/hyperledger/fabric-sdk-go
- 5 回答
- 0 關注
- 794 瀏覽
添加回答
舉報