go get的"无法识别的导入路径"

q3d*_*q3d 85 install go

我正在尝试安装web.go,但运行go get github.com/hoisie/web返回

package bufio: unrecognized import path "bufio"
package bytes: unrecognized import path "bytes"
package crypto/rand: unrecognized import path "crypto/rand"
package crypto/sha1: unrecognized import path "crypto/sha1"
package crypto/tls: unrecognized import path "crypto/tls"
package encoding/base64: unrecognized import path "encoding/base64"
package encoding/binary: unrecognized import path "encoding/binary"
package encoding/json: unrecognized import path "encoding/json"
package errors: unrecognized import path "errors"
package fmt: unrecognized import path "fmt"
Run Code Online (Sandbox Code Playgroud)

这种情况会持续一段时间与各种包裹,然后再返回其他内容.go env给我:

GOARCH="amd64"
GOBIN="/usr/local/go/bin"
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/home/me/go"
GOTOOLDIR="/home/me/go/pkg/tool/linux_amd64"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CXX="g++"
CGO_ENABLED="1"
Run Code Online (Sandbox Code Playgroud)

我该如何安装web.go?使用go get(而不是go install)是github页面上的README中的内容.我的Go版本是go version go1.2 linux/amd64.

Lar*_*tle 95

这些问题与无效有关GOROOT.

我想你安装了Go /usr/local/go.
所以改变你的GOROOT路径的价值/usr/local/go/bin.

您的工作空间(GOPATH)似乎就位于/home/me/go.

这可能会解决您的问题.
将其添加到bash配置文件的底部,位于此处=>$HOME/.profile

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin
Run Code Online (Sandbox Code Playgroud)

确保删除旧的引用GOROOT.

然后再次尝试安装web.go.

如果这不起作用,那么让Ubuntu为你安装Go.

sudo apt-get install golang

视频教程:http: //www.youtube.com/watch?v = 2PATwIfO5ag

  • 你几乎不应该设置GOROOT.您的PATH声明未命中/ usr/local/go/bin.另外,请注意ubuntu软件包有点落后于官方版本,即1.2. (14认同)
  • 回答自己:解开"GOROOT"似乎解决了这个问题. (13认同)
  • +1表示没有设置GOROOT.我取消了它,确定它没有设置`echo $ GOROOT`然后检查GO仍然在env中使用`go env`,它在`/ usr/local/go`我已经安装了(因此无论如何都不需要设置) (4认同)
  • 当我按照官方站点的go安装说明(从tar文件安装到/ usr/local)时,我收到了上面的错误,直到我更改了上面的GOROOT. (2认同)

Eri*_*ric 31

brew在OSX 10.11上安装了Go ,发现我必须设置GOROOT为:

/usr/local/Cellar/go/1.5.1/libexec

(当然用go版本替换此路径中的版本)

Brew使用符号链接,它们欺骗了gotool.请按照链接回家.


小智 22

在从旧版本(从旧PPA安装)迁移到ubuntu 14.04中较新的(1.2.1)默认软件包之后,我遇到了完全相同的问题.

第一步是清除现有的go:

sudo apt-get purge golang*
Run Code Online (Sandbox Code Playgroud)

哪些输出警告:

dpkg: warning: while removing golang-go, directory '/usr/lib/go/src' not empty so not removed
dpkg: warning: while removing golang-go.tools, directory '/usr/lib/go' not empty so not removed
Run Code Online (Sandbox Code Playgroud)

它看起来像删除后面留下一些文件,这反过来可以混淆较新的安装.更确切地说,安装本身将完成正常,但之后任何go命令,如"go get something"会给出那些"无法识别的导入路径"错误.

我所要做的就是首先移除那些dirs,重新安装golang,并且所有工作都像魅力(假设你也设置了GOPATH)

# careful!
sudo rm -rf /usr/lib/go /usr/lib/go/src
sudo apt-get install golang-go golang-go.tools
Run Code Online (Sandbox Code Playgroud)

  • Have you tried turning it off and on again? (21认同)

jef*_*fby 6

因为GFW禁止你访问golang.org!当我使用代理时,它可以很好地工作.

你可以使用命令查看信息 go get -v -u golang.org/x/oauth2


noe*_*lin 6

$ unset GOROOT为我工作。大多数答案都表明您的 GOROOT 无效。