Как правильно установить новую версию библиотеки в golang?
При импортировании новой версии библиотеки, возникла проблема. Делаю go get "github.com/adshao/go-binance/v2" не находит метод WsCombinedKlineServe которого нет на первой версии. Попробовал сделать go mod init "github.com/adshao/go-binance/v2", пишет при компиляции import cycle not allowed и package main становится красным. Подскажите, как мне такое исправить? И вообще это нормально что файл go.mod появляется в папке проекта? а вот, когда делаю go mod init "github.com/adshao/go-binance/v2" Мейн становится красным.
package main
import (
"fmt"
"github.com/adshao/go-binance/v2"
)
func main() {
pairs := map[string]string{
"BTCUSDT": "1m",
"ETHUSDT": "1m",
}
wsKlineHandler := func(event *binance.WsKlineEvent) {
fmt.Println(event)
}
errHandler := func(err error) {
fmt.Println(err)
}
doneC, _, err := binance.WsCombinedKlineServe(pairs, wsKlineHandler, errHandler)
if err != nil {
fmt.Println(err)
return
}
<-doneC
}
Файл go.mod
module github.com/adshao/go-binance/v2
go 1.15
Ответы (1 шт):
Сделайте так.
- Для начала переименуйте ваш модуль. Удалите
go.modи инициализируйте его заново командойgo mod init example.org/try/binance. Вместоexample.org/try/binanceможет любое имя, которым вы хотите назвать ваш модуль.
После этой операци go.mod будет выглядеть как-то так:
module example.org/try/binance
go 1.16
- Добавьте библиотеку
go-binanceкомандойgo get github.com/adshao/go-binance/v2
В консоли будет что-то вроде
go: downloading github.com/adshao/go-binance v2.3.5+incompatible
go: downloading github.com/adshao/go-binance/v2 v2.3.5
go: downloading github.com/bitly/go-simplejson v0.5.0
go: downloading github.com/gorilla/websocket v1.5.0
go get: added github.com/adshao/go-binance/v2 v2.3.5
а go.mod станет таким:
module example.org/try/binance
go 1.16
require github.com/adshao/go-binance/v2 v2.3.5 // indirect
Заодно рядом с go.mod появится файл go.sum.
- После того, как вы добавите
go-binanceвgo.modкомпилятор не будет ругаться наWsCombinedKlineServe:
PS> go run main.go
&{kline 1648726509274 ETHUSDT {1648726500000 1648726559999 ETHUSDT 1m 793582883 793582911 3404.00000000 3403.99000000 3404.00000000 3403.99000000 4.67000000 29 false 15896.66794500 3.46450000 11793.15800000}}
&{kline 1648726510988 BTCUSDT {1648726500000 1648726559999 BTCUSDT 1m 1310607031 1310607154 47175.82000000 47175.81000000 47175.82000000 47175.81000000 1.28785000 124 false 60755.37448040 0.75719000 35721.05914580}}
&{kline 1648726511632 ETHUSDT {1648726500000 1648726559999 ETHUSDT 1m 793582883 793582915 3404.00000000 3404.00000000 3404.00000000 3403.99000000 5.58290000 33 false 19004.17905400 4.32830000 14733.53320000}}
&{kline 1648726513008 BTCUSDT {1648726500000 1648726559999 BTCUSDT 1m 1310607031 1310607198 47175.82000000 47175.81000000 47175.82000000 47175.81000000 2.33832000 168 false 110312.15603140 1.59922000 75444.51486040}}
exit status 3221225786