"无法识别的导入路径"跟着去吧

时间:2013-12-08 20:41:50

标签: go install

我正在尝试安装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"

并且在使用各种包之前会持续一段时间,然后再返回其他内容。 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"

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

9 个答案:

答案 0 :(得分:86)

问题与无效GOROOT有关。

我认为你在/usr/local/go安装了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

请务必删除GOROOT

的旧引用

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

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

sudo apt-get install golang

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

答案 1 :(得分:28)

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

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

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

Brew使用符号链接,它们欺骗了gotool。请点击主页链接。

答案 2 :(得分:21)

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

第一步是清除现有的go:

sudo apt-get purge golang*

警告后输出:

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

看起来像删除go后面的一些文件,这反过来会混淆更新的安装。更确切地说,安装本身会很好,但是之后任何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

答案 3 :(得分:5)

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

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

答案 4 :(得分:2)

我在MacOS 10.10上遇到了同样的问题。而且我发现OhMyZsh shell引起的问题。然后我切换回bash一切顺利。

这是我的go env

bash-3.2$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/bis/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1

答案 5 :(得分:1)

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

答案 6 :(得分:0)

将go1.2升级到go1.4之后我遇到了同样的问题。

我在我的GOPATH中将src重命名为_src,然后执行了go get -v

然后我删除了_src。

希望它有所帮助。

答案 7 :(得分:0)

我在安装不同的软件包时遇到了这个问题,它可能是由PATH上的GOROOT和GOPATH配置引起的。我倾向于不设置GOROOT,因为我的OS X安装为我处理它(我相信)。

  1. 确保.profile中的以下内容(或存储配置文件配置的位置:.bash_profile,.zshrc,.bashrc等):

    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin
    
  2. 另外,如果路径也不正确,您可能也希望unset GOROOT

  3. 此外,请确保在GOPATH分配之前清理PATH,类似于我在下面所做的,即:

    export PATH=$HOME/bin:/usr/local/bin:$PATH
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin
    
  4. 然后,source <.profile>激活

  5. 重试go get

答案 8 :(得分:-1)

最常见的原因是:
1.配置错误的GOROOT
       OR
2.未设置GOPATH