I'm a newbie on Golang, and I'm trying to use Gin to develop a web server on Ubuntu 16.04.
After executing go get -u github.com/gin-gonic/gin
, many folders appear at ~/go/pkg/mod/github.com/
.
Then I try to make an example:
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")
}
However, go run example.go
made the error:
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)
In my system, $GOROOT
is /usr/local/go/
and $GOPATH
is ~/go/
.
How could I solve this problem?
Installation. To install Gin package, you need to install Go and set your Go workspace first. You first need Go installed (version 1.15+ is required), then you can use the below Go command to install Gin.
Gin is a high-performance HTTP web framework written in Golang (Go). Gin has a martini-like API and claims to be up to 40 times faster. Gin allows you to build web applications and microservices in Go. It contains a set of commonly used functionalities (e.g., routing, middleware support, rendering, etc.)
For Go version 1.11 or newer, You should use Go Modules.
If you are just starting with Go, you should start with the newer version. I think you are using a Go version that supports go modules already because the modules you are trying to get are downloading to ~/go/pkg/mod/
directory.
go mod init your-project-name
This will create a go.mod
file in your project directory.
go mod tidy
This will fill up the go.mod
file with appropriate modules and create a go.sum
in your project directory. The go.sum contains expected cryptographic hashes of each module version.
After that, the go run example.go
command should run the program without any issues.
go mod vendor
This will bring all the vendors to your projects /vendor
directory so that you don't need to get the modules again if working from another machine on this project.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With