4

尝试使用 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)
4

4 回答 4

2

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

go mod init example.com/try-echo
go get
go run server.go
于 2020-06-27T15:21:40.437 回答
2

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

export GO111MODULE=on

在您将运行时启用它go run server.go之后,它将再次安装软件包,之后程序将按预期运行。

于 2020-06-26T23:08:10.860 回答
0
export GO111MODULE=on
go mod init
go mod tidy

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

go mod download
于 2020-06-27T05:48:02.500 回答
0

我刚刚创建了一个具有相同 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并共享命令的结果,这将有助于进一步调试。

于 2020-06-27T05:36:45.357 回答