Google app engine 找不到来自本地模块的包“;找不到提供包的模块";

Google app engine 找不到来自本地模块的包“;找不到提供包的模块";,google-app-engine,go,Google App Engine,Go,我一直在将我的应用程序引擎网站升级到go112。go应用程序(带有包github.com/a/main.go)正在使用一个名为api(github.com/a/api/)的文件夹和另一个名为服务器的文件夹中的多个子包。这些子包使用其他依赖项 当我运行go-vet,go-build时,一切似乎都很好 当我将应用部署到应用引擎时,构建过程失败(使用云构建)。输出显示无法找到api文件夹中的包。删除对该包的引用时,在服务器文件夹中的另一个包上生成失败 奇怪的是,它是我自己的代码,而appengine上

我一直在将我的应用程序引擎网站升级到go112。go应用程序(带有包
github.com/a/main.go
)正在使用一个名为
api
github.com/a/api/
)的文件夹和另一个名为
服务器的文件夹中的多个子包。这些子包使用其他依赖项

当我运行
go-vet
go-build
时,一切似乎都很好

当我将应用部署到应用引擎时,构建过程失败(使用云构建)。输出显示无法找到
api
文件夹中的包。删除对该包的引用时,在
服务器
文件夹中的另一个包上生成失败

奇怪的是,它是我自己的代码,而appengine上的编译无法找到它

好像所有的子包都没有被“上传”,但我不明白为什么


我已经运行了
go mod init
go build./…
,没有任何问题。

有关go模块的更改,请参阅。您需要(继续)使用<代码> GopaS>代码>或(建议)考虑迁移到模块,并使用<代码> GO。文档说明了如何使用这两种方法正确引用依赖项。我的应用程序都位于My
GOPATH
中,并且我还创建了一个
go.mod
文件。从技术上讲,找不到的文件不是依赖项,它只是我应用程序的一部分。我已删除了
go.mod
,但这会导致找不到所有其他依赖项。签出
go-env-GOPATH
为我提供了所有东西的正确路径…我建议使用
go.mod
文件,并将代码移动到
GOPATH
之外。如果您试图从
GOPATH
中使用
go.mod
,请确保将
GO111MODULE=设置为on
。您可以使用
go mod init github.com/a
创建它。很抱歉,我没有听到您的评论,您正在使用
go.mod
。我将试图重新编程。确保在导入中使用绝对引用;前缀应与您的
go.mod
modules路径匹配。