去'找不到导入'

时间:2014-07-15 20:36:00

标签: go dependency-management

我试图将Heroku的log-shuttle库(https://github.com/heroku/log-shuttle)合并到我正在处理的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 build和......

$ go build
# github.com/<my project>
logWriter/log_shuttle_writer.go:5: can't find import: "github.com/heroku/log-shuttle"

我的GOPATH设置正确(我相信):

$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/jeff/go/"
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CXX="g++"
CGO_ENABLED="1"

该软件包已安装并构建,但它不想导入。正如您所看到的,包路径中存在非非ASCII字符(尽管连字符是非字母数字),我无法找到有关可能导致此问题的更多信息。

不确定它的重要性,但我使用godep来尝试管理我的依赖项。

提前致谢。

1 个答案:

答案 0 :(得分:6)

github.com/heroku/log-shuttle是一个main包,不是可导入的库,这意味着它应该被编译并作为二进制文件运行。