我从Go开始,试图了解GOPATH
(可能是GOBIN
)。
尝试通过go get
获取外部库时出现错误
go get: no install location for directory D:\Seafile\dev-perso\domotiqueNG\services\dispatcher-go\src\dispatcher-go outside GOPATH
通过在$GOPATH/src
下面建立项目结构,显然可以解决此错误。
这是否意味着我的所有Go程序必须住在那里?如果GOPATH
为d:\hello
,那么项目bonjour
和aurvoir
确实需要在
d:\hello\src\bonjour
d:\hello\src\aurevoir
只是?
在这种情况下,我该如何
d:\home
并且专业人员x:\work
时,d:\home\domotique\dispatch
在Go中,d:\home\domotique\whatever
在Python中,我在d:\home
中有几个这样的组合?答案 0 :(得分:1)
你实际上可以在GOPATH之外拥有Go项目。但是,在这种情况下,某些工具不能正常工作或根本无法工作。例如,格式化代码并添加缺少导入的goimports
将无法找到GOPATH之外的包。您必须使用相对路径手动编写导入:./path/to/your/package
。
当个人必须留在d:\ home和x:\ work的专业人士时,我怎么能分开个人和专业项目?
您实际上可以拥有多个Go工作区(https://github.com/golang/go/wiki/GOPATH)。您只需将GOPATH设置为与操作系统列表分隔符连接的位置列表。例如在Linux上它看起来像这样:
GOPATH="/home/nobody/perso:/home/nobody/work"
尽管如此,我不确定go
和依赖管理器等其他工具如何处理多个工作区。
答案 1 :(得分:0)
使用GOPATH时,您可以在/src
文件夹中创建子目录,例如,添加主目录和工作目录。事实上,Go项目有example如何组织代码。虽然包需要在自己的文件夹中,但GOPATH中的文件夹本身并不是自动包。
如果您不想在GOPATH的范围内工作,可以将其更改为您想要使用的路径,或将其设置为您的主目录。