#go #redis #go-get
#Вперед #redis #go-get
Вопрос:
Я загрузил клиент go-redis с помощью
go mod init github.com/my/repo
go get github.com/go-redis/redis/v8
Но он показал, что не удается найти пакет «go.opentelemetry.io/otel/api/trace «. Итак, я удалил go-redis из $ {GOPATH}/src/github.com, а затем попытался запустить его снова
go get github.com/go-redis/redis/v8
Но это ничего не делает. Не показывает никаких ошибок или сообщений. Но когда я пытаюсь импортировать пакет, он говорит
не удается найти пакет «github.com/go-redis/redis/v8 » в любом из:
/usr/lib/go/src/github.com/go-redis/ redis/v8 (из $GOROOT)
/home/username/go/src/github.com/go-redis/redis/v8 (из $ GOPATH)
Я пытался go mod tidy
go mod clean
, но ничего не получалось. Что мне делать?
Комментарии:
1. Здесь: github.com/go-redis/redis/issues/1534 Это может помочь!
2. У меня была такая же проблема, попробуйте удалить go.sum, введите
go mid tidy
и попробуйте использовать golang 14.0>
Ответ №1:
- ls
$GOPATH
, если не отображается ваш путь к источнику библиотеки golang, вы должны сначала указать путь, - Если пункт 1 доступен, вы должны просто выполнить :
go mod tidy
аргумент tidy заставляет вас загружать пакет с помощью метода синхронизации, не выполняя go get отдельно.
Ответ №2:
Я бы предпочел использовать go vendoring, он добавит ваши зависимости в vendor/ и -mod=vendor скажет golang искать зависимости локально.
- Удалить go.sum
- Тип
export GOFLAGS=-mod=vendor
- Тип
go mod tidy amp;amp; go mod vendor
Если вы не можете экспортировать переменные, используйте go run и go build с префиксом GOFLAGS=-mod=vendor
, например GOFLAGS=-mod=vendor go run cmd/main/main.go
Не забудьте добавить vendor/ в свой файл .gitignore