我想做一个go get:
go get github.com/go-sql-driver/mysql
它失败,并出现以下错误:
package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath
当我做一个go env,一个go值列表如下所示:
ubuntu@ip-xxx-x-xx-x:~$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
显然GOPATH没有设置,我该如何设置,在哪里设置?
我看到许多线程提到了这个错误,但没有一个线程提供了我的问题的答案,需要编辑哪个文件来为这个路径提供一个值?
您必须根据所使用的终端(bash或zsh)更新PATH。
打开终端shell脚本文件,即~/。Bashrc或~/。ZSHRC编辑器
微,多达/ .zshrc
(,)
多达code / .zshrc
如果已经找到,更新下面的GOPATH或添加下面的行。
出口GOPATH = $ HOME /: / $ HOME /项目/走
在这里,你可以添加一个或多个由分号分隔的路径:从系统上GO项目的不同位置到GOPATH环境变量,即/path/1:path/2:path/3等。
在我的例子中,我添加了2个路径,如上所示,一个来自根目录$HOME/go,另一个来自项目目录:/$HOME/projects/go
新方法:模块
从Go 1.11开始,你不再需要使用GOPATH。简单地转到你的项目目录,这样做一次:
go mod init github.com/youruser/yourrepo
这样,Go就在该目录下创建了一个模块根目录。
您可以创建任意多的模块。
有关步骤的说明,也请参见这个答案。
旧方法:GOPATH
如果你坚持使用GOPATH,请注意以下几点:
自从Go 1.8以来,你不需要设置你的GOPATH或GOROOT。
默认情况下,GOPATH位于用户/主目录下。
从文档中可以看到:
如果没有设置GOPATH,则在Unix系统上假设为$HOME/go,在Windows系统上假设为%USERPROFILE%\go。如果希望使用自定义位置作为工作空间,可以设置GOPATH环境变量。