【问题标题】:Why can AppEngine Not Find Mailgun Pakage为什么 App Engine 找不到 Mailgun 包
【发布时间】:2020-05-28 13:56:06
【问题描述】:

我有我的 Golang App Engine 项目。我不是 Go 专家,所以包管理器对我来说有点神秘。直到现在我还没有遇到任何问题。当我尝试使用 MailGun Api 时,它说它无法解决依赖关系。我像这样导入mailgun: import "github.com/mailgun/mailgun-go".

但是,当我尝试运行时:gcloud app deploy 我收到以下错误:

 GO111MODULE=auto, but no go.mod found, so building with dependencies from GOPATH
main-package: MyPackage
2020/05/28 08:44:25 Staging second-gen Standard app (GOPATH mode): failed analyzing C:\Users\myUserName\go\src\MyPackage: cannot f
ind package "github.com/mailgun/mailgun-go/v4/events" in any of:
        ($GOROOT not set)
        C:\Users\MyUserName\go\src\github.com\mailgun\mailgun-go\v4\events (from $GOPATH)
GOPATH: C:\Users\MyUserName\go

当我导航到 C:\Users\MyUserName\go\src\github.com\mailgun\mailgun-go 存在但没有文件夹 v4events... 不确定问题是什么以及它在哪里获取事件文件夹。感谢您的帮助!

【问题讨论】:

  • /v4 表示它是 Go 模块,版本为 4。您需要 go mod init 才能使其正常工作。
  • 当我运行go mod init 我得到modules disabled inside GOPATH/src by GO111MODULE=auto; see 'go help modules' 我找到了这个答案:stackoverflow.com/a/56475510/9609442 但我在任何地方都找不到 go.mod 文件。我不明白我已经导入了包并且它已经为这个项目工作了,为什么现在它不工作了??
  • 我必须运行set GO111MODULE=on。然后当我运行go mod init 时,它部署了!不知道出了什么问题,但很高兴知道它正在工作。 @Flimzy 如果您将您的评论作为答案,我将接受并投票。非常感谢!
  • 那么构建日志是什么?您使用的是哪个版本的 Go?
  • 是的,显然应该在问题中,而不是在 cmets 中。

标签: go google-app-engine mailgun


【解决方案1】:

Go 模块使用/vX 约定来区分不同的主要版本。这意味着您需要使用 Go 模块来使用这样的包。

为此,您需要在项目的根目录中运行go mod init

此外,如果您使用的是旧版本的 Go(1.11 或 1.12),则需要设置 GO111MODULE=on 以确保您的代码被视为 Go 模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 2021-11-19
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2019-07-10
    相关资源
    最近更新 更多