【问题标题】:Go, Golang : external package import with GOROOTGo, Golang : 使用 GOROOT 导入外部包
【发布时间】:2013-09-29 10:05:15
【问题描述】:

Go, Golang : does not make sense that I have to have files before import

我正在尝试进行下一步,但不断出现错误

  1. 我已经准备好要导入的包。
  2. 我需要做的就是从 github 导入外部包并能够在任何代码上使用它。

这就是我所做的。

mkdir $HOME/go
export GOPATH=$HOME/go
go get github.com/user/project

这运行成功。我用 github 的源代码文件将它下载到这里

/Users/user/go/src/github.com/user/project/project.go

所以要使用我刚刚导入的这个包

go run /Users/user/Desktop/code.go

但我收到以下错误

 MacBook-Air:~ user$ go run /Users/user/Desktop/code.go 
 Desktop/code.go:32:8: cannot find package "project" in any of:
        /usr/local/go/src/pkg/project (from $GOROOT)
        /Users/user/go/src/project (from $GOPATH)

我该怎么办?我错过了什么吗?在此先感谢,请帮助我。我写了很多代码,但是因为这个而无法分发它非常沮丧。

【问题讨论】:

    标签: github go package


    【解决方案1】:

    错误消息在您的code.go 的第 32 行显示它找不到包“goling”。

    假设这是您要使用的本地包,您需要确保它在您的 GOPATH 中。

    如果您设置了 GOPATH,那么您应该在其中开发您的代码,因此将“goling”目录移动到 /Users/user/go/src 是正确的做法。

    另外,“goling”可能是一个错字,因此请检查 code.go 中的导入。如果你想从 github 导入一个项目,导入应该说

    import "github.com/user/project"
    

    然后你使用前缀为project.的项目部分

    如果这不能帮助您使其正常工作,请发布 code.go 的导入部分。

    【讨论】:

      【解决方案2】:

      看起来您的外部包与使用它的主包位于同一文件夹中。在 go 中,所有包必须位于不同的目录中。看起来 github 项目本身实际上就是这样做的。如果你将包分成不同的目录,它应该可以正常工作。

      【讨论】:

      • 谢谢,终于成功了。谢谢,作为初学者,我不明白它是如何工作的。不过谢谢!
      猜你喜欢
      • 2021-10-31
      • 2020-08-01
      • 2021-01-30
      • 2014-12-16
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2020-10-17
      • 2016-03-10
      相关资源
      最近更新 更多