将 GOPATH 设置为我的工作区的原因是什么?
What is the reason to have GOPATH set to my workspace?
我到处都看到我的 GOPATH
必须设置为我的工作区。如果我这样做并使用 go get
从例如 github 获取包,它们都会被添加到我的工作区,但我发现这不是特别有用,因为它使我的工作区变得混乱。在我的工作区中,我希望找到我的代码和我的代码。
所以我现在在 ~/repos/go
中有自己的存储库,并将我的 GOPATH
保留为默认 ~/go
。这很完美。我导入的所有库都在 ~/go
中,这让我自己的工作场所 ~/repos/go
干净整洁。这对我来说非常有用,所以我不确定为什么这不是推荐的工作方式。
我错过了什么吗?是否有我破坏的东西或功能无法以这种方式工作?
欢迎所有提示!
[编辑] 解释为什么我的问题与 this question 不同:我知道 GOPATH
做了什么(在使用 go get 时定义放置包的位置和从中导入包的位置) ,但我不知道为什么您需要将 public 代码与您自己的代码放在同一位置。正如@peterSO 在我在下面接受的(优秀)答案中所解释的那样,事实证明不需要它。
go help gopath
Go searches each directory listed in GOPATH to find source code, but
new packages are always downloaded into the first directory in the
list.
$GOPATH
是一个目录列表。例如,在 Linux、
export GOPATH=$HOME/gopublic:$HOME/goprivate
go get
将所有下载放在列表的第一个目录中:$HOME/gopublic
。将所有包放在列表的第二个目录中:$HOME/goprivate
.
GOPATH
是 golang 工具链在您尝试编译代码时查看的默认目录。 技术上 100% 没有必要设置一个自定义的,好像我没有记错,它默认为 ~/go/
。
正如 peterSO 上面所说,GOPATH
是一个列表并将包放入第一个条目。
我到处都看到我的 GOPATH
必须设置为我的工作区。如果我这样做并使用 go get
从例如 github 获取包,它们都会被添加到我的工作区,但我发现这不是特别有用,因为它使我的工作区变得混乱。在我的工作区中,我希望找到我的代码和我的代码。
所以我现在在 ~/repos/go
中有自己的存储库,并将我的 GOPATH
保留为默认 ~/go
。这很完美。我导入的所有库都在 ~/go
中,这让我自己的工作场所 ~/repos/go
干净整洁。这对我来说非常有用,所以我不确定为什么这不是推荐的工作方式。
我错过了什么吗?是否有我破坏的东西或功能无法以这种方式工作?
欢迎所有提示!
[编辑] 解释为什么我的问题与 this question 不同:我知道 GOPATH
做了什么(在使用 go get 时定义放置包的位置和从中导入包的位置) ,但我不知道为什么您需要将 public 代码与您自己的代码放在同一位置。正如@peterSO 在我在下面接受的(优秀)答案中所解释的那样,事实证明不需要它。
go help gopath
Go searches each directory listed in GOPATH to find source code, but new packages are always downloaded into the first directory in the list.
$GOPATH
是一个目录列表。例如,在 Linux、
export GOPATH=$HOME/gopublic:$HOME/goprivate
go get
将所有下载放在列表的第一个目录中:$HOME/gopublic
。将所有包放在列表的第二个目录中:$HOME/goprivate
.
GOPATH
是 golang 工具链在您尝试编译代码时查看的默认目录。 技术上 100% 没有必要设置一个自定义的,好像我没有记错,它默认为 ~/go/
。
正如 peterSO 上面所说,GOPATH
是一个列表并将包放入第一个条目。