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 get github.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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM