广告位联系
返回顶部
分享到

Go环境变量配置,及GOROOT、GOPATH的区别

Golang 来源:互联网 作者:佚名 发布时间:2024-09-04 22:21:46 人浏览
摘要

一、安装Go go下载地址: https://golang.google.cn/dl/ windows下载安装,有两种方式。解压和直接安装 方式一:直接下载安装包。以.msi结尾的文件。例如: go1.22.1.windows-amd64.msi 下载后,双击后一直点

一、安装Go

go下载地址:

https://golang.google.cn/dl/

windows下载安装,有两种方式。解压和直接安装

方式一:直接下载安装包。以.msi结尾的文件。例如:

go1.22.1.windows-amd64.msi 

下载后,双击后一直点下一步即可安装成功。

方式二:下载压缩包文件,直接解压。解压后配置环境变量即可。例如:

下载完成,放到自己电脑的目录里面,然后解压,加压后得到如下文件:

二、配置Go环境变量

右击电脑 -> 属性  -> 高级系统设置  -> 环境变量。打开环境变量设置窗口

增加:增加两个环境变量:GOROOT、GOPATH

GOROOT:GO的安装目录,相当于java中的jdk

GOPATH:GO的项目工作目录,以后开发的代码就写到这个文件夹中。

配置GOROOT:

GOPATH和GOROOT的配置略有不同,我建议配置两个GOPATH目录,第一个用于放 Go 语言的第三方包,第二个用于放自己的开发代码。我们来新建GOPATH。点击系统变量下的新建,在变量名一栏输入GOPATH,在变量值一栏输入任意两个目录,中间用英文分号隔开。

配置GOPATH 

然后将新建的GOROOT配置到 Path 这个环境变量中去,在系统变量中找到 Path,点击编辑->新建,输入%GOROOT%\bin,点击确定。并将所有母窗口的确定全部点下,确保环境变量生效。

这样就配置完了,一路点击确定,直到桌面; 

检查是否配置成功。 

windows+R 输入 cmd 打开终端,输入go version,如果输出如下图所示,则安装成功。

1

2

3

4

5

#查看Go版本

go version

 

#查看Go环境变量

go env

配置GO111MODULE、GOPROXY、GOSUMDB

GO111MODULE:为啥是111呢,这是冲go的1.11版本增加的一个功能。用于管理第三方包的,如果这个开启的话,gopath这个变量基本上就用不到了。

Go默认的GOPROXY的值是:GOPROXY=https://proxy.golang.org,direct。这个goproxy在使用go get安装第三方库的时候会报错,导致无法下载成功,所以必须要修改一下。

比如改为:https://goproxy.io,direct (七牛镜像)

或 https://mirrors.aliyun.com/goproxy(阿里云镜像)

配置go变量的一些命令: 

1

2

3

4

5

6

7

8

9

10

11

#开启mod模式(项目管理需要用到)

go env -w GO111MODULE=on

#重新设置成七牛镜像源(推荐)或阿里镜像源(用原有的会比较慢)

go env -w GOPROXY=https://goproxy.cn,direct

go env -w GOPROXY=https://mirrors.aliyun.com/goproxy

 

#关闭包的MD5校验

go env -w GOSUMDB=off

 

#查看环境变量

go env

三、GoRoot

GOROOT是go的安装路径。GOROOT目录下有bin、doc、src等。如下图:

四、GoPath

GOPATH:是开发的工作目录。用于保存编译后的二进制文件。go get命令和go install命令会下载go的代码到GOPATH中。

使用GOPATH时,项目中import引用的第三方包,首先会从GOROOT/src下搜索,如果搜索不到,会到GOPATH/src目录下搜索。

举个例子吧:

比如go项目中,应用了如下第三方包:

import "Go-Player/src/chapter17/models"

第一步:Go会先去GOROOT/src目录中查找,很显然它不是标准库的包,没找到。
第二步:继续在GOPATH/src目录去找,准确说是GOPATH/src/Go-Player/src/chapter17/models这个目录。

如果该目录不存在,会报错找不到package。

在使用GOPATH管理项目时,需要按照GO寻找package的规范来合理地保存和组织Go代码。

五、go-mod

开启GO111MODULE时,即GO111MODULE=on,再项目中引用第三方包时,仍然使用GOPATH的方式进行引用,这时在引用时会报错。

GO111MODULE 有三个值:off, on和auto(默认值)。

GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。

GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。

GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。

这种情况下可以分为两种情形:
当前目录在GOPATH/src之外且该目录包含go.mod文件,即使用go mod对项目的第三方依赖进行管理,不再使用gopath的方式
当前文件在包含go.mod文件的目录下面。

当modules 功能启用时,依赖包的存放位置变更为$GOPATH/pkg,允许同一个package多个版本并存,且多个项目可以共享缓存的 module。 


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Go语言中的指针的使用介绍
    1、Go 语言中指针的介绍 1.1、什么是指针? 指针是一种变量,它存储了另一个变量的内存地址。在 Go 中,你可以通过取地址操作符获取变量
  • Go环境变量配置,及GOROOT、GOPATH的区别

    Go环境变量配置,及GOROOT、GOPATH的区别
    一、安装Go go下载地址: https://golang.google.cn/dl/ windows下载安装,有两种方式。解压和直接安装 方式一:直接下载安装包。以.msi结尾的文件。
  • golang interface指针实现
    在 Go 语言中,接口(interface)是一种类型,它定义了一组方法的集合。任何实现了接口中所有方法的类型都会自动满足该接口。当涉及到指针
  • Go语言等待组sync.WaitGrou的使用
    Go语言中除了可以使用通道(channel)和互斥锁进行两个并发程序间的同步外,还可以使用等待组进行多个任务的同步,等待组可以保证在并
  • Go语言中的接口类型介绍
    接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 1.接口类型 1.1 接口类型的说明 Go语言中
  • Go语言占位符的使用介绍
    Golang的字符串占位符在fmt包的各种打印函数中使用,如fmt.Printf、fmt.Sprintf。 变量值与类型的打印 %v: 打印变量的值 %v会根据变量的类型选择
  • 基于Golang实现Kubernetes边车模式

    基于Golang实现Kubernetes边车模式
    在这篇文章中,我们会介绍 Sidecar 模式,并创建两个基于 Go 的容器化微服务,然后部署到 Kubernetes 上。 什么是 Sidecar 模式? Sidecar 模式是一
  • 使用Go语言实现基于泛型的Jaccard相似度算法

    使用Go语言实现基于泛型的Jaccard相似度算法
    基本原理 跳表: jaccard相似度: jaccard相似度的代码实现: 时间复杂度分析: 快速jaccard算法: 代码实现,这个要求两个集合都是有序的:
  • go-zero自定义中间件的几种方式
    1.通过 api 文件生成并填入具体逻辑 定义 api 首先你需要在 api 文件中定义你需要的路由位置和中间件的名字: 1 2 3 4 5 6 7 8 9 // test for ping @
  • Go中gin框架的*gin.Context参数常见实用方法
    梗概: *gin.Context是处理HTTP请求的核心。ctx代表context(上下文),它包含了处理请求所需的所有信息和方法,例如请求数据、响应构建器、
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计