【发布时间】:2014-05-11 15:38:21
【问题描述】:
我正在使用 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 个私有存储库,用于单个应用程序的真正相关和绑定部分。
【问题讨论】:
-
你是怎么导入的?
-
import "github.com/user/repository/utils/core"。当我指定包(这里是核心)时,Go 找不到它。当我停止使用 utils 时,它说有 2 个包(核心和工厂) -
因为每个包应该有一个目录
-
@phndiaye 两个文件上的
package声明应为package utils,并且应使用import "github.com/user/repository/utils"导入 -
哦,我明白了!这就是问题所在。我将 core 和 factory 都声明为 utils 包成员,它可以工作。
标签: go