小白之 Gin 安装遇到的坑

Gin 初始安装#

1、安装网官的文档执行
go get -u github.com/gin-gonic/gin

Gin 安装遇到的坑

因不能翻墙,百度了说 用 gopm 解决,群里的小伙伴说这种试早就过时了,现在都是用 go mod 来解决
于是 开启 go mod

go env -w GOBIN=/Users/youdi/go/bin
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct // 使用七牛云的

使用 go mod 来 管理一个新的项目

mkdir Gone
cd Gone
go mod init Gone

查看一下 go.mod 文件

module Gone

go 1.16

go.mod 文件一旦创建后,它的内容将会被 go toolchain 全面掌控。go toolchain 会在各类命令执行时,比如 go get、go build、go mod 等修改和维护 go.mod 文件。

go.mod 提供了 module, require、replace 和 exclude 四个命令

  • module 语句指定包的名字(路径)
  • require 语句指定的依赖项模块
  • replace 语句可以替换依赖项模块
  • exclude 语句可以忽略依赖项模块
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 main.go 运行代码会发现 go mod 会自动查找依赖自动下载
结果报错

main.go:3:8: no required module provides package github.com/gin-gonic/gin; to add it:
        go get github.com/gin-gonic/gin

执行:go mod edit -require github.com/gin-gonic/gin@latest 解决,指定 Gin 的版本
再次运行 go run main.go 报错

go: github.com/gin-gonic/gin@v1.7.4: missing go.sum entry; to add it:
        go mod download github.com/gin-gonic/gin

然后执行 go mod tidy 再次执行 go run main.go 终于跑起来了

本作品采用《CC 协议》,转载必须注明作者和本文链接