【问题标题】:Can't seem to get started with Go and Echo似乎无法开始使用 Go 和 Echo
【发布时间】:2021-08-24 20:27:15
【问题描述】:

尝试使用 Golang 和 Echo 构建一个简单的 crud api,但我无法通过 Echo 文档中的第一个步骤。

我跑go get -u github.com/labstack/echo/...

然后我创建 server.go:

package main

import (
    "net/http"

    "github.com/labstack/echo/v4"
)

func main() {
    e := echo.New()
    e.GET("/", func(c echo.Context) error {
        return c.String(http.StatusOK, "Hello, World!")
    })
    e.Logger.Fatal(e.Start(":1323"))
}

但是当我尝试运行时:go run server.go

我收到此错误:

server.go:6:2: cannot find package "github.com/labstack/echo/v4" in any of:
    /usr/local/Cellar/go/1.14.4/libexec/src/github.com/labstack/echo/v4 (from $GOROOT)
    /Users/dariusgoore/go/src/github.com/labstack/echo/v4 (from $GOPATH)

【问题讨论】:

  • 运行go get github.com/labstack/echo/v4,如the installation instructions中所述。
  • 返回相同的错误消息:在以下任何一个中找不到包“github.com/labstack/echo/v4”:/usr/local/Cellar/go/1.14.4/libexec/src/github .com/labstack/echo/v4(来自 $GOROOT)/Users/dariusgoore/go/src/github.com/labstack/echo/v4(来自 $GOPATH)
  • @user2799827 启用模块。如果您是编写 Go 代码的新手,请参阅 How to Write Go Code

标签: go go-echo


【解决方案1】:

您需要启用GO111MODULE。要启用该模块,您需要运行此命令。

export GO111MODULE=on

当你运行go run server.go时启用它,然后它会再次安装包,然后程序将按预期运行。

【讨论】:

  • 尝试,现在:找不到提供包 github.com/labstack/echo/v4 的模块:工作目录不是模块的一部分
  • 运行命令go env,看看GO111MODULE的值是多少?
【解决方案2】:

当我在 go mod init 之前运行 go get 时,我遇到了同样的问题。使用以下命令,我可以成功运行服务器:

go mod init example.com/try-echo
go get
go run server.go

【讨论】:

    【解决方案3】:

    我刚刚使用相同的 main.go 创建了一个新项目,它运行没有任何问题。我已经列出了我遵循的步骤。

    package main
    
    import (
        "net/http"
    
        "github.com/labstack/echo/v4"
    )
    
    func main() {
        e := echo.New()
        e.GET("/", func(c echo.Context) error {
            return c.String(http.StatusOK, "Hello, World!")
        })
        e.Logger.Fatal(e.Start(":1323"))
    }
    

    并使用 go.mod 下载依赖项

    go mod init

    go get

    go run main.go

    它运行没有任何错误

           ____    __
      / __/___/ /  ___
     / _// __/ _ \/ _ \
    /___/\__/_//_/\___/ v4.1.16
    High performance, minimalist Go web framework
    https://echo.labstack.com
    ____________________________________O/_______
                                        O\
    ⇨ http server started on [::]:1323
    

    我希望这会有所帮助。如果没有,您可以运行go env 并分享命令的结果,这将有助于进一步调试。

    【讨论】:

      【解决方案4】:
      export GO111MODULE=on
      go mod init
      go mod tidy
      

      如果不成功,添加更多命令:

      go mod download
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-26
        • 1970-01-01
        • 1970-01-01
        • 2021-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多