go get 命令下载gin包时出现报错

使用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

 

两种解决办法,根据情况选择

posted @ 2021-02-18 09:42  小鹰展翅  阅读(3930)  评论(0编辑  收藏  举报