在Ubuntu 16.04中出现GOPATH错误“开始:无法在GOPATH模式下使用path @ version语法”

时间:2019-01-29 07:18:47

标签: go gopath

我无法在我的go get git@github<user/repo>文件夹中运行$GOPATH。 出现此错误:

  

go:在GOPATH模式下不能使用path @ version语法

我只想了解即使在安装过程中配置了go get却为何$GOPATH无法正常工作的原因。环境是ubuntu。

~/$ echo $GOPATH
/home/user/go

7 个答案:

答案 0 :(得分:3)

您已经注意到,应该使用go get github.com/<user>/<repo>

您看到的错误消息来自go get中为支持Go modules而实现的新功能-您现在还可以指定依赖项的版本:go get github.com/<user>/<repo>@<version>,其中{{1} }是使用semver的git标签,例如version

答案 1 :(得分:1)

当我尝试在初始化go mod的目录之外的目录中运行命令时遇到此问题。为了下载具有特定版本的模块,需要go.mod文件,该文件可以跟踪同一模块的多个版本。但是,由于无法选择跟踪同一模块的不同版本,因此尝试在go模块目录之外的其他任何位置(将引用GOPATH存储下载模块)尝试下载该模块都会失败。

答案 2 :(得分:0)

我遇到了同样的问题,并解决了在.zshrc(或.bashrc,具体取决于您使用的shell)中设置特定的env变量export GO111MODULE=on并重新启动Shell以启用模块的问题。您可以在这里找到更多详细信息:https://github.com/golang/go/wiki/Modules

答案 3 :(得分:0)

我也遇到了这个问题。经过一些搜索之后,以下操作通过使用<main style="display:none;"> ... </main> <button type="button" id="aboutLink">About</button>而不是go mod来完成,这是go模块的功能:

go get

答案 4 :(得分:0)

如果您在尝试使用模块时遇到此错误,则应在获取前将dir更改为project:

root@host:/# go get github.com/ibm-messaging/mq-golang/ibmmq@ff54c095001d81eed10615916a896512eb8d81ff
go: cannot use path@version syntax in GOPATH mode
root@host:/# cd myproject/
root@host:/myproject# ls go.mod 
go.mod
root@host:/myproject# go get github.com/ibm-messaging/mq-golang/ibmmq@ff54c095001d81eed10615916a896512eb8d81ff
go: finding github.com ff54c095001d81eed10615916a896512eb8d81ff
go: finding github.com/ibm-messaging/mq-golang/ibmmq ff54c095001d81eed10615916a896512eb8d81ff
go: finding github.com/ibm-messaging/mq-golang ff54c095001d81eed10615916a896512eb8d81ff
go: finding github.com/ibm-messaging ff54c095001d81eed10615916a896512eb8d81ff

答案 5 :(得分:0)

在使用模块初始化项目之前,在空项目上运行$ go get github.com/<user>/<repo>@<version>时,Go v1.14出现了此错误。

为解决此问题,我使用以下方法创建了一个go.mod文件:

$ go mod init

我能够成功地重新运行get命令,该命令下载了供应商的软件包,更新了go.mod文件,并创建了go.sum文件。

答案 6 :(得分:0)

按照 https://gist.github.com/nikhita/432436d570b89cab172dcf2894465753 中的说明更新 go 版本

这对我有用!