Невозможно импортировать gorilla / mux (github.com/gorilla/mux@v1.7.4: явно требуется в go .mod, но не помечено как явное в vendor / modules.txt) - PullRequest
0 голосов
/ 30 апреля 2020

В Go я пробовал простое соединение с базой данных. Мне нужно импортировать gorilla/mux, но я не смог.

Я использую VS Code. После cd входа в каталог моего проекта я создал main.go и запустил go get -u github.com/gorilla/mux

Здесь main. go

package main

import (
    "database/sql"
    "fmt"
    "github.com/gorilla/mux"
    _ "github.com/lib/pq"
)

const (
    host     = "localhost"
    port     = 3000
    user     = "postgres"
    password = "postgres"
    dbname   = "test1"
)

func main() {
    psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
        "password=%s dbname=%s sslmode=disable",
        host, port, user, password, dbname)

    db, err := sql.Open("postgres", psqlInfo)
    if err != nil {
        panic(err)
    }
    defer db.Close()

    err = db.Ping()
    if err != nil {
      panic(err)
    }

    fmt.Println("Successfully connected!")
}

[ Обратите внимание, что после выполнения go get -u github.com/gorilla/mux терминал показывает

C:\Go\src\github.com\IamFrost\go-rest-api>go get -v -u github.com/gorilla/mux
go: golang.org/x/text upgrade => v0.3.2
go: golang.org/x/crypto upgrade => v0.0.0-20200429183012-4b2356b1ed79
go: golang.org/x/sys upgrade => v0.0.0-20200430082407-1f5687305801
go: golang.org/x/net upgrade => v0.0.0-20200425230154-ff2c4b7c35a0
go: downloading golang.org/x/sys v0.0.0-20200430082407-1f5687305801
golang.org/x/sys/cpu
golang.org/x/crypto/chacha20poly1305
crypto/tls

]

enter image description here Посмотрите, у меня нет другой синтаксической ошибки в мини-карте. На красной отметке, когда я ставлю мышку, текст при наведении мне смешен:

1) imported but not used

, но следующая строка

2) no package for import github.com/gorilla/mux )

лол разве не так go против 1)?

Кто-то, пожалуйста, объясните, почему это происходит

Однако

После использования go build в терминал

Вот терминал:

C:\Go\src\github.com\IamFrost\go-rest-api>go build
go: inconsistent vendoring in C:\Go\src:
        github.com/gorilla/mux@v1.7.4: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
        github.com/lib/pq@v1.4.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
        golang.org/x/crypto@v0.0.0-20200429183012-4b2356b1ed79: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
        golang.org/x/net@v0.0.0-20200425230154-ff2c4b7c35a0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
        golang.org/x/sys@v0.0.0-20200430082407-1f5687305801: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
        golang.org/x/crypto@v0.0.0-20200128174031-69ecbb4d6d5d: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
        golang.org/x/net@v0.0.0-20191126235420-ef20fe5d7933: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
        golang.org/x/sys@v0.0.0-20200201011859-915c9c3d4ccf: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod

run 'go mod vendor' to sync, or use -mod=mod or -mod=readonly to ignore the vendor directory

[Примечание: я также сделал 'go mod vendor', но без изменений]

Так что кто-то указывает мне, почему я не могу импортировать gorilla/mux или pq.

Что еще мне нужно сделать?

(и, пожалуйста, объясните, что это значит? is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt)

1 Ответ

0 голосов
/ 10 мая 2020

ref: https://github.com/restic/rest-server/issues/102

  • env: go 1.14.2
  • с использованием: go 1.13.10 ok

Они добавили проверочный код, который проверяет, что вендорные зависимости находятся в хорошем состоянии.

...