我是 Golang 的新手,我正在尝试使用Gin在 Ubuntu 16.04 上开发 Web 服务器。执行后go get -u github.com/gin-gonic/gin,出现很多文件夹~/go/pkg/mod/github.com/。然后我试着举个例子:package mainimport "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)在我的系统中,$GOROOTis/usr/local/go/和$GOPATHis ~/go/。我该如何解决这个问题?
3 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
对于 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.sumgo.sum 包含每个模块版本的预期加密哈希。
之后,该go run example.go命令应该运行程序没有任何问题。
您甚至可以在项目目录中供应模块:
go mod vendor
这会将所有供应商带到您的项目/vendor目录中,这样如果在该项目的另一台机器上工作,您就不需要再次获取模块。
倚天杖
TA贡献1828条经验 获得超3个赞
我意识到在添加了一个名为 的包后gopls
,我的 IDE 运行良好。
gopls
使用 snap安装:sudo snap install gopls --classic
繁星淼淼
TA贡献1775条经验 获得超11个赞
从错误中,您可以看到 GOPATH 是您的 '/home/zyh/go' 而不是您的 ~/go。你可以运行shellgo env
来确认你的GOPATH在哪里?然后修改它。
- 3 回答
- 0 关注
- 211 浏览
添加回答
举报
0/150
提交
取消