如何使用 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 运行良好。
使用快照安装 gopls
:sudo snap install gopls --classic
我是 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 运行良好。
使用快照安装 gopls
:sudo snap install gopls --classic