解决$GOPATH/go.mod exists but should not
解决报错$GOPATH/go.mod exists but should not
今天又一次配环境,终于解决了go mod和GOPATH之间的冲突关系了
解决
我们刚装上go和go的ide例如goland,需要配置go的环境。此时我们需要注意,在go1.11版本之后,引入了go mod来统一对包进行管理,在此之前用的是gopath。相信大部分人现在装的都是1.11以上版本。
重点来了:我在网上找了很久没有找到相关文章,但是在我的实践之下我发现了go mod和gopath不能是同一个文件夹。
需求也来了,我不想每次go get的包都放在c盘,因为c盘是默认的gopath,gopath路径又是存放包的路径。但是我一设置了gopath之后go mod又不能用了。此时应该怎么解决呢?
也就是说,有go mod的地方不能是GOPATH。
我们只需要在别的盘新建一个文件夹专门用作gopath存每次go get的包,有两个方法,1.在环境变量中设置GOPATH,路径就是你新建的那个文件夹。2.cmd输入go env -w GOPATH=刚刚的文件夹路径。如图
这个叫做GOPATH的文件夹就是我新建的。
只需要设置这一处的GOPATH,goland中的setting里面的都可以全部清空。设置完了之后,就可以正常使用了,在你的项目目录下输入go mod init xxx,然后就生成了一个go mod文件,然后go get -u -v google.golang.org/grpc试一下
成功导入包,到此就结束了。
go get的时候出现错误dial tcp:xxx
另外,如果go get 出现错误dial tcp:xxx那就是代理出现问题,被防火墙挡了,换个国内的代理地址就行在终端输入go env -w GOPROXY=你的国内代理地址,设置完了之后go env查看一下成功没有
我改成了这个就解决了错误