如何使用 Golang 安装 Gin

How to install Gin with Golang

我是 Golang 的新手,我正在尝试使用 Gin 在 Ubuntu 16.04.

上开发 Web 服务器

执行go get -u github.com/gin-gonic/gin后,很多文件夹出现在~/go/pkg/mod/github.com/

那我试着打个比方:

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

然而,go run example.go犯了错误:

example.go:3:8: cannot find package "github.com/gin-gonic/gin" in any of:
        /usr/local/go/src/github.com/gin-gonic/gin (from $GOROOT)
        /home/zyh/go/src/github.com/gin-gonic/gin (from $GOPATH)

在我的系统中,$GOROOT/usr/local/go/$GOPATH~/go/

我该如何解决这个问题?

从错误中可以看出,GOPATH 是你的'/home/zyh/go' 而不是你的~/go。 你可以 运行 shell go env 确认你的 GOPATH 在哪里?然后修改它。

对于 Go 版本 1.11 或更高版本,您应该使用 Go Modules

如果您刚开始使用 Go,则应该从较新的版本开始。我认为您正在使用已经支持 go 模块的 Go 版本,因为您尝试获取的模块正在下载到 ~/go/pkg/mod/ 目录。

要用go模块初始化项目,运行:

go mod init your-project-name

这将在您的项目目录中创建一个 go.mod 文件。

添加缺少的 and/or 删除未使用的模块:

go mod tidy

这将使用适当的模块填充 go.mod 文件,并在您的项目目录中创建一个 go.sum。 go.sum 包含每个模块版本的预期加密哈希值。

在那之后,go run example.go 命令应该 运行 程序没有任何问题。


您甚至可以在项目目录中出售模块:

go mod vendor

这会将所有供应商带到您的项目 /vendor 目录中,这样如果您在另一台机器上处理此项目,则无需再次获取模块。

我发现在添加名为 gopls 的包后,我的 IDE 运行良好。

使用快照安装 goplssudo snap install gopls --classic