2014-07-15 2 views
1

Heoku의 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 
# github.com/<my project> 
logWriter/log_shuttle_writer.go:5: can't find import: "github.com/heroku/log-shuttle" 

... go build과에 가서 내가 가진 내 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을 사용하여 내 의존 관계를 관리하려고합니다.

미리 감사드립니다.

답변

6

github.com/heroku/log-shuttlemain 패키지입니다.이 패키지는 가져올 수있는 라이브러리가 아니므로 컴파일되고 바이너리로 실행되어야합니다.

+0

감사합니다. 따라서 포크라면'main'이 아닌 다른 패키지에 코드를 저장 한 다음 내 보낸 함수에 액세스 할 수 있습니까? 패키지가 실행 가능한'main' 일 수 있고 다른 사람이 가져올 수 있도록 이러한 문제를 피하기위한 일반적인 "베스트 프랙티스"가 있습니까? –

+1

라이브러리를 가져올 수있게하려면 모든 기능을 기본 패키지가 아닌 패키지에 넣은 다음 기본 패키지를 가져 와서 실행하면됩니다. – JimB

관련 문제