我是Golang的新手,我正在尝试使用杜松子酒在Ubuntu16.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/
。
我怎样才能解决这个问题?
发布于 2020-04-08 01:59:51
对于版本1.11或更高版本,您应该使用Go模块。
如果你只是从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
目录中,这样,如果在此项目上从另一台机器上工作,您就不需要再次获取模块。
发布于 2022-05-19 04:11:08
我意识到,在添加了一个名为gopls
的包之后,我的IDE运行得非常好。
使用snap安装gopls
:sudo snap install gopls --classic
发布于 2020-04-08 01:59:35
从错误中,你可以看到GOPATH是你的'/home/zyh/go‘,而不是你的~/go。您还可以运行shell go env
来确认您的GOPATH在哪里?那就修改它。
https://stackoverflow.com/questions/61091852
复制相似问题