Golang 导入问题

Golang Importing Issue

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

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

当我尝试构建程序时,出现如下所示的错误:

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

我希望能够在应用程序的任何其他程序中调用模型程序,只需使用:

import "app/model"

在执行此操作时我有哪些选择?

您从 GOPATH 级别导入..您所有的包裹都应该放在那里。

例如,假设您的应用程序在这里:

$GOPATH/src/dtrinh100/app/

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

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

您的导入将是:

import "github.com/other/package"

您应该查阅有关 GOPATH 环境变量的全部内容的文献。开始使用 Go 时,了解它的用途很重要,最初,您应该将所有 projects/packages 放在 GOPATH.

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

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

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

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

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

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