【发布时间】: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"
-
@luminoslty
go get golang.org/x/text是我尝试的第一件事 - 没有效果 -
这看起来像
go get过去被中断,并在$HOME/go/pkg/mod(模块缓存)中留下了空目录。如果删除$HOME/go/pkg/mod/golang.org/x/text*并再次运行go build会发生什么? -
感谢@Peter - 这似乎解决了我的问题
标签: google-app-engine go google-cloud-platform google-cloud-pubsub