Golang导入问题

时间:2015-03-18 04:24:28

标签: import go package

我试图使用导入包供内部使用,但我遇到了一些问题 我的目录结构如下所示:

  app/
    model/
      file1.go
      file2.go
      ...
    main.go

当我尝试构建程序时,我收到的错误看起来像这样:

/usr/local/go/src/pkg/model (from $GOROOT)

我希望能够使用以下方法在应用程序中的任何其他程序中调用模型程序:

import "app/model"

这样做有什么选择?

2 个答案:

答案 0 :(得分:2)

您从GOPATH级别导入..您的所有软件包都应该存在。

例如,假设您的应用程序在此处:

$GOPATH/src/dtrinh100/app/

..您想要导入的包裹在这里:

$GOPATH/src/github.com/other/package

您的导入将是:

import "github.com/other/package"

您应该查看有关GOPATH环境变量的所有内容的文献。在开始Go时,了解其目的很重要,最初,您应该将所有项目/包放在GOPATH内。

答案 1 :(得分:0)

导入自定义程序包时,Go会在GOPATH环境变量中列出的每个工作空间中查找其定义。您的自定义包应该在src子目录中定义。

如果您将代码保存在某个源存储库中,那么您应该使用该源存储库的根作为基本路径。例如,如果您在github.com/user有一个GitHub帐户,则应该是您的基本路径。

请注意,在构建代码之前,您不需要将代码发布到远程存储库。组织代码只是一个好习惯,好像有一天你会发布它一样。实际上,您可以选择任意路径名称,只要它对标准库和更大的Go生态系统是唯一的。

您应该使用github.com/user作为我们的基本路径。在工作区内创建一个目录,用于保存源代码:

$ mkdir -p $GOPATH/src/github.com/user

您可以查看How to Write Go Code了解详情。