如何修复 Go 1.11 模块未知导入路径,找不到模块提供包?
Posted
技术标签:
【中文标题】如何修复 Go 1.11 模块未知导入路径,找不到模块提供包?【英文标题】:How to fix Go 1.11 module unknown import path, cannot find module providing package? 【发布时间】:2019-05-21 01:26:50 【问题描述】:我正在构建一个 Go 1.11 标准应用引擎服务。
它不在GOPATH
下面,所以我跑了go mod init
和go mod tidy
。
我能够使用go build
构建一个简单的Web 服务,并使用gcloud app deploy
进行部署和测试。
我现在正尝试在this code example 之后将 gPubSub 代码添加到我的服务中。
这会添加以下导入:"context"
、"cloud.google.com/go/pubsub"
。
当我运行go build
时,我得到:
../../../../go/pkg/mod/golang.org/x/net@v0.0.0-20181217023233-e147a9138326/idna/idna.go:23:2: unknown import path "golang.org/x/text/secure/bidirule": cannot find module providing package golang.org/x/text/secure/bidirule
../../../../go/pkg/mod/golang.org/x/net@v0.0.0-20181217023233-e147a9138326/idna/idna.go:24:2: unknown import path "golang.org/x/text/unicode/bidi": cannot find module providing package golang.org/x/text/unicode/bidi
../../../../go/pkg/mod/golang.org/x/net@v0.0.0-20181217023233-e147a9138326/idna/idna.go:25:2: unknown import path "golang.org/x/text/unicode/norm": cannot find module providing package golang.org/x/text/unicode/norm
当我运行 go get -u all
时,我得到“没有 Go 文件”
go build golang.org/x/text/secure/bidirule: no Go files in
go build golang.org/x/text/unicode/bidi: no Go files in
go build golang.org/x/text/unicode/norm: no Go files in
cat go.mod
显示以下内容:
```
module github.com/XXX/YYY
require (
cloud.google.com/go v0.34.0
github.com/googleapis/gax-go v2.0.2+incompatible // indirect
go.opencensus.io v0.18.0 // indirect
golang.org/x/net v0.0.0-20181217023233-e147a9138326 // indirect
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890 // indirect
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f // indirect
golang.org/x/sys v0.0.0-20181218192612-074acd46bca6 // indirect
google.golang.org/api v0.0.0-20181220000619-583d854617af // indirect
google.golang.org/appengine v1.3.0 // indirect
google.golang.org/genproto v0.0.0-20181219182458-5a97ab628bfb // indirect
google.golang.org/grpc v1.17.0 // indirect
)
```
go list .
显示以下内容:
go: finding golang.org/x/text/unicode/bidi latest
go: finding golang.org/x/text/secure/bidirule latest
go: finding golang.org/x/text/unicode/norm latest
go: finding golang.org/x/text/unicode latest
go: finding golang.org/x/text/secure latest
github.com/XXX/YYY/ZZZ (our project)
这似乎是一些暂时的依赖。
当我使用 gcloud app deploy
进行部署时,我的服务确实成功构建并在执行时发布到 pubsub 主题,因此这是一个本地问题。
如何诊断和修复这个本地开发环境问题?
【问题讨论】:
呃,你不需要去获取 golang.org/x/package/name 然后 import "package/name" @luminosltygo get golang.org/x/text
是我尝试的第一件事 - 没有效果
这看起来像go get
过去被中断,并在$HOME/go/pkg/mod
(模块缓存)中留下了空目录。如果删除 $HOME/go/pkg/mod/golang.org/x/text*
并再次运行 go build
会发生什么?
感谢@Peter - 这似乎解决了我的问题
【参考方案1】:
固定:
rm -rf ~/go/pkg/mod/golang.org/x/text@v0.3.0
go get golang.org/x/text
【讨论】:
非常感谢!这解决了我在firestore
和../../go/pkg/mod/google.golang.org/grpc@v1.24.0
遇到的问题以上是关于如何修复 Go 1.11 模块未知导入路径,找不到模块提供包?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复Django添加URL路径中的错误,找不到未链接到新代码
动态导入图像(React Js)(需要 img 路径找不到模块)