Go';Can';找不到导入';

Go';Can';找不到导入';,go,dependency-management,Go,Dependency Management,我正试图将Heroku的日志穿梭机库()合并到我正在进行的Go项目中。该工具主要设计为作为独立的二进制文件运行,但我希望以不同的方式将其集成到我的工具中 所以我得到了图书馆: $ go get github.com/heroku/log-shuttle $ ls $GOPATH/src/github.com/heroku/log-shuttle/ batcher.go Godeps ... ... package myPackage import ( "github.

我正试图将Heroku的
日志穿梭机
库()合并到我正在进行的Go项目中。该工具主要设计为作为独立的二进制文件运行,但我希望以不同的方式将其集成到我的工具中

所以我得到了图书馆:

$ go get github.com/heroku/log-shuttle
$ ls $GOPATH/src/github.com/heroku/log-shuttle/
  batcher.go       Godeps ...
  ...
package myPackage

import (
  "github.com/heroku/log-shuttle"
  "fmt"
  "log"
)
...
它成功返回。然后我尝试导入库:

$ go get github.com/heroku/log-shuttle
$ ls $GOPATH/src/github.com/heroku/log-shuttle/
  batcher.go       Godeps ...
  ...
package myPackage

import (
  "github.com/heroku/log-shuttle"
  "fmt"
  "log"
)
...
太好了。但是现在我转到
去构建

$ go build
# github.com/<my project>
logWriter/log_shuttle_writer.go:5: can't find import: "github.com/heroku/log-shuttle"
软件包已安装并生成,但它不想导入。正如您所看到的,包路径中有非ASCII字符(尽管连字符是非字母数字的),我找不到有关导致此问题的原因的更多信息

不确定这有什么关系,但我正在使用
godep
来管理我的依赖关系


提前感谢。

是一个
main
包,不是一个可导入的库,这意味着它要作为二进制文件编译和运行。

谢谢。因此,如果我使用fork,我希望代码驻留在
main
以外的包中,然后我就可以访问导出的函数了?是否有一个通用的“最佳实践”来避免这些问题,以便您的包既可以是可运行的
main
,也可以由其他人导入?如果您希望能够导入库,您可以将所有功能放在非主包中,然后有一个简单的主包导入并运行它。