1. 程式人生 > 其它 >Golang專案如何引用一個第三方的庫

Golang專案如何引用一個第三方的庫

Golang專案如何引用一個第三方的庫?寫好test.go檔案後執行go run test.go的時候報錯,其實是因為golang配置或者自己的專案沒有配置正確。

1、首先,安裝完Golang之後,需要配置一些系統變數,就像Java一樣【這點沒有Python方便,Python是開箱即用】。其中最重要的變數是GOPATH(必須大寫),這個變數是一個目錄的絕對地址,Go語言使用這個目錄進行第三方庫和程式碼的管理,對於我們的程式碼中引用的第三方包,例如gin等,Go語言系統會去兩個目錄找這個第三方庫,一個是GOROOT變數指向的目錄(也就是Go語言的安裝目錄)下的pkg目錄,一個是GOPATH指向的目錄下的pkg/mod子目錄。若這兩個目錄都找不到第三方庫,就會報錯。

對於Windows系統的配置Go語言變數方法有兩種:

  • 一種是使用go env命令,例如go env -w GOPATH=D:\\MyGoPathDIR,env是列印變數,加上-w選項表示寫入,這裡是設定GOPATH變數的值為D:\MyGoPathDIR目錄
  • 另外一種是設定windows的環境變數,在控制面板裡新增一個GOPATH的系統變數,其值設定為D:\MyGoPathDIR,儲存即可。

這兩種方法都可以,但當兩種方法設定的同一個變數的值不一致時,go語言系統會優先選擇windows的環境變數。

2、如果是簡單的程式碼,不需要引用第三方的包,其實直接寫個xxx.go檔案,然後go run xxx.go就可以,但如果需要引用第三方的庫,比如xxx.go引用了gin,那麼必須建立工程專案。

  • 建立專案的方法是,先建立一個空目錄, 然後在該目錄下執行"go mod init 專案名"的命令,這樣golang會自動在該目錄下生成一個go.mod的檔案。然後執行 go run xxx.go時,系統會提示找不到github.com/gin-gonic/gin,然後提示你使用go get命令去下載,你執行go getgithub.com/gin-gonic/gin命令,就會自動去下載gin,下載下來的檔案會儲存在GOPATH指向的目錄的pkg/mod子目錄下,go.mod檔案的內容也會加上"require github.com/gin-gonic/gin v1.7.2 // indirect" 表示 這個專案依賴下載的github.com/gin-gonic/gin這個專案。你再次執行go run xxx.go時就可以成功執行了
  • 這其中golang為什麼能自動去下載?這需要我們配置一個系統變數GO111MODULE,把其值設定為on,表示我們啟用了go的module功能(這類似Java的maven功能,就是自動解決第三方依賴的一個工具),就會去自動下載,設定為auto(預設值),go將會根據當前目錄來決定是否啟用module功能。
  • 對於國內,我們還可以設定第三個變數GOPROXY來加速這個下載過程,這個變數是指向一個代理伺服器,設定GOPROXY=https://goproxy.cn,direct,表示從https://goproxy.cn這個域名(七牛雲)取下載第三方的庫,比直接去github下載更快。

詳情請參考:https://studygolang.com/articles/28712