在Go中从main导入本地包

在Go中从main导入本地包,go,Go,我正在使用Go及其net/httpstdlib模块编写一个API,在一个名为utils的目录中有一些utils代码。但是当我在main中导入它们时,Go没有找到包。根本原因显然是Go包必须保存在$GOPATH/src/中。所以我想知道是否有办法导入本地包并将它们保存在与主包相同的文件夹中 我遵循Github目录结构,因此我的$GOPATH看起来是这样的 $GOPATH/src/ |___github.com/ |___user/ |___reposito

我正在使用Go及其
net/http
stdlib模块编写一个API,在一个名为utils的目录中有一些utils代码。但是当我在main中导入它们时,Go没有找到包。根本原因显然是Go包必须保存在
$GOPATH/src/
中。所以我想知道是否有办法导入本地包并将它们保存在与主包相同的文件夹中

我遵循Github目录结构,因此我的$GOPATH看起来是这样的

$GOPATH/src/
   |___github.com/
       |___user/
           |___repository/
               |___main.go
               |___utils/
                   |___core.go
                   |___factory.go
由于utils目录实际上与应用程序绑定,因此将其保存为$GOPATH/src中的另一个Go应用程序对我来说非常糟糕。除此之外,想象一下我想在Github上发布代码的时刻。这里只有2个存储库,但如果是6个,我需要6个私人回购,用于一个应用程序中真正相关和绑定的部分。

(记录一个答案,因为乍一看它看起来没有答案)

两个文件上的
声明应为
package-utils
,并且它们应与以下文件一起导入:

import "github.com/user/repository/utils"
如果您确实想将每个代码文件作为单独的包分开,还可以制作子包(标准库
io
包具有
io/ioutil

import "github.com/user/repository/utils"
import "github.com/user/repository/utils/sub"
本地目录结构将是:

$GOPATH/src/
   |___github.com/
       |___user/
           |___repository/
               |___main.go
               |___utils/
                   |___core.go
                   |___sub/factory.go
(答案详细信息发布在@phndiaye的评论中)

(记录一个乍一看似乎没有答案的答案)

两个文件上的
声明应为
package-utils
,并且它们应与以下文件一起导入:

import "github.com/user/repository/utils"
如果您确实想将每个代码文件作为单独的包分开,还可以制作子包(标准库
io
包具有
io/ioutil

import "github.com/user/repository/utils"
import "github.com/user/repository/utils/sub"
本地目录结构将是:

$GOPATH/src/
   |___github.com/
       |___user/
           |___repository/
               |___main.go
               |___utils/
                   |___core.go
                   |___sub/factory.go

(回答@phndiaye在评论中发布的详细信息)

您如何导入它?
import“github.com/user/repository/utils/core”
。当我指定包(这里是core)时,Go找不到它。当我停下来讨论utils时,它说有2个包(core和factory),因为每个包应该有一个目录package@phndiaye这两个文件上的
package
声明应该是
package-utils
,它们应该通过
import“github.com/user/repository/utils”导入
哦,我明白了!这就是问题所在。我已将core和factory声明为utils包成员,它可以正常工作。如何导入它?
import“github.com/user/repository/utils/core”
。当我指定包(这里是core)时,Go找不到它。当我停下来讨论utils时,它说有2个包(core和factory),因为每个包应该有一个目录package@phndiaye这两个文件上的
package
声明应该是
package-utils
,它们应该通过
import“github.com/user/repository/utils”导入
哦,我明白了!这就是问题所在。我声明core和factory都是utils包的成员,它可以工作。