我正在嘗試在這里使用 promql 包package mainimport ( "fmt" "github.com/prometheus/prometheus/promql/parser")func main() { fmt.Println("Hello") parser.ParseExpr("foobar") }導入時遇到問題。這是錯誤:沒有必需的模塊提供包 github.com/prometheus/prometheus/promql/parser;添加它:去獲取 github.com/prometheus/prometheus/promql/parser(編譯)我嘗試go get github.com/prometheus/prometheus/promql/parser按照建議運行,但失敗了。去獲?。赫业侥K github.com/prometheus/prometheus@upgrade (v2.5.0+incompatible),但不包含包 github.com/prometheus/prometheus/promql/parser這是我go.mod目前的:module foo.com/bar/parsergo 1.17require github.com/prometheus/prometheus v2.5.0+incompatible // indirect
1 回答

九州編程
TA貢獻1785條經驗 獲得超4個贊
使用go get github.com/prometheus/prometheus@83032011a5d3e6102624fe58241a374a7201fee8
(該提交是此時的最新版本,v2.33.4)
需要這樣做的原因是
這是 Go 模塊的一個已知問題。Prometheus 的語義版本控制將 Prometheus 的行為版本化為服務器,而不是將其代碼作為庫。通過將模塊路徑更改為 v2,我們建議 Prometheus 作為庫遵守 Go Modules 的契約,但事實并非如此,即即使在次要版本中也有許多重大變化。
和:
Prometheus 不打算用作圖書館?,F(xiàn)在情況發(fā)生了變化,即使我們不接受所有通用貢獻,它也打算照原樣使用。
您看到的錯誤是因為默認情況下go get
抓取舊版本v2.5.0
,該版本于 2018 年發(fā)布并且不包含該parser
軟件包。發(fā)生這種情況是因為 Prometheus 使用的版本控制方案與 Go 假設的不一致。
有關其他信息,請參閱此問題。
- 1 回答
- 0 關注
- 139 瀏覽
添加回答
舉報
0/150
提交
取消