我是 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 關注
- 235 瀏覽
添加回答
舉報
0/150
提交
取消