【问题标题】:'go install' will not find package "fmt"“去安装”将找不到包“fmt”
【发布时间】:2016-12-05 15:06:36
【问题描述】:

我通过将 go 1.7.4 解压到 ~/go 并相应地设置 GOROOT 来安装它。我还创建了 ~/work/src/github.com/user/hello 并相应地设置了 GOPATH。

在尝试来自 https://golang.org/doc/install#testing 的 hello world 示例时,我收到以下错误:

$ go install github.com/user/hello
    ../work/src/github.com/user/hello/hello.go:3:8: cannot find package "fmt" in any of:
    /home/user/go/src/pkg/fmt (from $GOROOT)
    /home/user/work/src/fmt (from $GOPATH)
package github.com/user/hello
    imports runtime: cannot find package "runtime" in any of:
    /home/user/go/src/pkg/runtime (from $GOROOT)
    /home/user/work/src/runtime (from $GOPATH)

检查 ~/go,我发现 fmt 在 ~/go/src/fmt 而不是 ~/go/src/pkg/fmt

感觉好像我错过了一些重要的东西。感谢您的帮助。

【问题讨论】:

  • 您之前是否从包管理器安装过 Go? go version 打印什么?旧版本的 Go 过去常常在 src/pkg 中查找 stdlib。
  • 确实,我安装了一个我不知道的旧版本的 go。删除它,现在它可以工作了。谢谢!
  • 另外:千万不要设置GOROOT,不需要用go工具编译Go程序。
  • @Volker 但是如果我在我的主目录中安装了 go,我必须设置 GOROOT,对吗?我尝试取消设置,但在这种情况下“安装”失败。
  • @user3207230:是的,将预编译的 go 版本放在非标准路径中是唯一应该设置 GOROOT 的情况。如果您尝试从其他位置运行 Go,请不要忘记您已设置它,因为这是初学者问题的常见原因,默认建议的原因是不设置 GOROOT。

标签: go


【解决方案1】:

如果你之前从包管理器安装过 Go,你可能有一个旧版本。检查go version 并根据需要删除旧版本。

【讨论】:

    【解决方案2】:

    对于 MacPorts 用户,例如go 1.10.3 安装,它似乎没有为我正确安装。缺少运行时标准包。我什至尝试卸载并重新安装一个干净的副本。所以我只是将其删除并从google获得了官方的darwin二进制包:

    https://golang.org/dl/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2018-01-09
      • 2018-05-24
      相关资源
      最近更新 更多