69

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

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

我只是想了解为什么go get即使$GOPATH在安装过程中进行了配置也无法正常工作。环境是ubuntu。

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

7 回答 7

58

I had the same issue and solved setting specific env variable export GO111MODULE=on in my .zshrc(or .bashrc depending on which shell you use) and restart the shell in order to enable modules. You can find more details here: https://github.com/golang/go/wiki/Modules

于 2019-05-22T05:34:33.273 回答
21

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

您看到的错误消息来自于go get支持Go 模块的新功能- 您现在还可以指定依赖项的版本:go get github.com/<user>/<repo>@<version>,其中version使用 semver 的 git 标记,例如v1.0.2.

于 2019-01-29T08:10:33.030 回答
18

我也遇到了这个问题。经过一番搜索,以下工作通过使用go mod代替go get,这是Golang 模块的一个功能:

$ export GO111MODULE=on

$ go mod init <project name>

# go mod init HelloWorld
# or
# go mod init .

$ go mod download repo@version

# go mod download github.com/robfig/cron/v3@v3.0.0
于 2019-07-16T16:09:24.420 回答
8

$ go get github.com/<user>/<repo>@<version>在我用模块初始化我的项目之前,在一个空项目上运行时,我在 Go v1.14 上遇到了这个错误。

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

$ go mod init

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

于 2020-07-15T15:51:24.830 回答
4

如果您在尝试使用模块时遇到此错误,您应该在 go get 之前将 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
于 2019-12-19T07:52:51.903 回答
2

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

于 2020-10-31T09:56:40.340 回答
2

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

这对我有用!

于 2021-05-28T02:32:02.237 回答