如何在Golang中安装Gin

问题描述 投票:0回答:2

我是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/

我该如何解决这个问题?

linux go module webserver gin
2个回答
0
投票

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


0
投票

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

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

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

go mod init your-project-name

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

添加缺少和/或删除未使用的模块:

go mod tidy

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

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


您甚至可以在项目目录中供应模块:

go mod vendor

这会将所有供应商带到您的项目/vendor目录,这样,如果从该项目上的另一台计算机上工作,则无需再次获取模块。

© www.soinside.com 2019 - 2024. All rights reserved.