> 我们为什么要设置GOPATH
设置GOPATH的要求对于首次安装Go工具的Go用户来说是一个主要问题,并且在他们使用这些工具的初始体验中得到了
错误 : "you have to set a GOPATH"
即使您不关心设置此变量,仍然需要您在项目中注意:
1. 用户仍需要将 $GOPATH/bin 添加到其PATH中以运行由`go install`初始化的可执行文件执行`go get`
2. 使用Go语言开发的用户仍然需要了解GOPATH的存在,其位置和结构。
3. 如果你的`GOROOT`(你检查Go的源代码的位置)是默认的GOPATH,如果没有设置GOPATH,工具将拒绝使用默认的GOPATH来破坏你的GOROOT。
4. 如果默认值不适合你,你仍然可能更喜欢设置自定义GOPATH。
### 1. GOPATH的定义
> `GOPATH` 环境变量用来指定你的工作区的位置,如果`GOPATH`没有设置,
它会自动设置在类Unix系统里像这样:
> `$HOME/go `
设置在 windows系统里像这样:
>`%USERPROFILE%\go`
如果你想自定义你的工作区, 你需要设置`GOPATH` 环境变量.
下面将讲解如何在不同的平台上如何设置。
### 2. 在不同的平台上自定义GOPATH
#### 2.1 Unix系统
GOPATH 可以设置在你系统的任意一个目录下.
下面的例子里我们将设置他到 `$HOME/go` (Go 1.8版本以后默认).
注意 GOPATH 不能和你的go安装目录相同. 普遍的设置是 GOPATH=$HOME.
##### 2.1.1 Bash
编辑 `~/.bash_profile` 添加下面一行:
```go```
export GOPATH=$HOME/go
```
保存退出编辑器,然后执行
```go```
source ~/.bash_profile
```
##### 2.1.2 Zsh
编辑你的 `~/.zshrc` 添加下面一行:
```go```
export GOPATH=$HOME/go
```
保存退出你的编辑器.然后执行
```go```
source ~/.zshrc
```
##### 2.1.3 fish
```go```
set -x -U GOPATH $HOME/go
```
`-x` 用来指定你要导出的变量
`-U` 设置成全局的环境
#### 2.2 Windows系统
你的工作区可以被定义成你想要放置的任何目录, 下面我们使用 `C:\go-work` 作为例子
注意: GOPATH 不能和 Go 的安装目录相同.
##### 2.2.1 Windows 7
1. 创建目录 `C:\go-work`.
2. `计算机` 图标上鼠标右击 选择 `属性`
3. 选择左侧 `高级系统设置`
4. 选择底部 `环境变量`
5. 在上方窗口中选择 `GOPATH` 点击编辑 输入值 `C:\go-work` 保存
##### 2.2.2 Windows 10
有个更快的方式通过搜索环境变量:
1. 左键单击“搜索”并键入env或environment。
2. 选择“为您的帐户编辑环境变量”。
3. 并按照上述windows7步骤操作。
### 3. 查看GOPATH
```go```
go env GOPATH
```
参考文章:
https://rakyll.org/default-gopath/
https://github.com/golang/go/wiki/SettingGOPATH
有疑问加站长微信联系(非本文作者))