使用go get 命令下載gin框架時報錯,截圖如下:
報錯產生原因有兩個:
第一個:通過查找原因,gin的個別包無法下載是被牆了
第二個:go在1.13版本后,默認開啟了GOSUMDB=sum.golang.org,而這個網址sum.golang.org 在國內是無法訪問,故需要關閉
解決辦法:
第一步:關閉GOSUMDB 命令:【go env -w GOSUMDB=off】
第二步:更換國內源,徹底解決配置代理也無法下載個別包的問題 (因為在執行go get github.com/gin-gonic/gin時我是配置了goproxy的,依舊無法下載個別包,所以徹底更換國內源)
命令:【go env -w GO111MODULE=on】
【go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct】
設置完后結果呈現:
總結:
關閉GOSUMDB=off,更換國內代理源即可完美解決下載問題,設置完后,再執行【go get github.com/gin-gonic/gin】,不到5秒鍾,所有gin相關的包均下載成功,也無任何報錯
后續反饋:
經過上述步驟設置后,雖然需要的文件能很快下載下來,但是沒有出現在src目錄下,而是出現在pkg目錄下,因此在goland上無法直接引用gin包中的內容
基於此,我們需要設置下go module
設置完go module后,在需要調用gin包的文件夾下執行命令【go mod init gin】,就會在這個文件夾下自動生成一個go.mod文件
這個時候在代碼操作區輸入gin,還無法將相關的包自動帶出
最后一步:在命令操作區輸入命令【go get github.com/gin-gonic/gin】,執行這步就是導入包,將包從pkg目錄引入到src目錄下
執行完后,在代碼操作區再輸入gin,發現跟gin相關的包全都能自動帶出
go get 下載包的問題完美解決
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第二種解決辦法:不需要啟用go module
先看報錯,缺少什么包,就git clone什么包
進入的gopath的src目錄下創建一個文件夾:名稱為golang.org,然后進入golang.org后再創建一個文件夾x
拉取 github上的golang庫包,命令如下:
git clone https://github.com/golang/sys.git git clone https://github.com/golang/net.git git clone https://github.com/golang/text.git t git clone https://github.com/golang/lint.git git clone https://github.com/golang/tools.git git clone https://github.com/golang/crypto.git
創建文件夾google.golang.org,進入文件夾后再創建protobuf文件夾,執行如下命令,將git clone的內容拷貝至目錄下
git clone https://github.com/protocolbuffers/protobuf-go
將net、sys、tools三個文件夾放到$GOPATH/src/golang.org/x目錄下
此時再執行【go get github.com/gin-gonic/gin】
兩種解決辦法,根據情況選擇