2016-04-01 6 views
0

пакет vpc_app/unit_test.go:Почему не удается найти мою библиотеку?

import (
    "github.com/my-org/my-library/http" 
) 
... 

пакет github.com/my-org/my-library/http/http.go:

package http 
... 

Структура файла:

$ tree 
tree 
. 
├── glide.lock 
├── glide.yaml 
├── unit 
│   └── modules 
│    └── vpc 
│     └── vpc-app 
│      └── unit_test.go 
└── vendor 
    └── github.com 
     └── my-org 
      └── my-library 
       ├── http 
       │   └── http.go 

Проблема:

Когда я бегу go test ./... я получаю эту ошибку:

vendor/github.com/my-org/my-library/url_checker.go:7:2: cannot find package "github.com/my-org/my-library/http" in any of: 
    /usr/local/go/src/github.com/my-org/my-library/http (from $GOROOT) 
    /Users/josh/go/src/github.com/my-org/my-library/http (from $GOPATH) 

Вопрос:

Я использую идти 1.6, но это, кажется, не смотреть в моем поставщика чтобы найти пакет. Любые идеи о том, почему это может быть?

Update # 1: В соответствии с просьбой, вот мой go env выход:

OARCH="amd64" 
GOBIN="" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="darwin" 
GOOS="darwin" 
GOPATH="/Users/josh/go" 
GORACE="" 
GOROOT="/usr/local/go" 
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64" 
GO15VENDOREXPERIMENT="1" 
CC="clang" 
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common" 
CXX="clang++" 
CGO_ENABLED="1" 
+0

Спасибо, Джош, вы также можете показать первые несколько строк в 'vendor/github.com/my-org/my-library/url_checker.go'? –

+0

И обновленная ошибка, если она отличается. –

+1

Итак, я делаю что-то действительно немое. Мой репо не входит в мой «GOPATH»! Перемещение по git-репо на 'GOPATH/src/github.com/my-org/my-library' сделало трюк. Большое спасибо за вашу помощь и отзывчивость! –

ответ

0

Эта ошибка происходящий из vendor/github.com/my-org/my-library/url_checker.go, который находится в папке поставщика.

Похоже, что является найти папку поставщика, но вопрос в связи с оператором импорта в vendor/github.com/my-org/my-library/url_checker.go в строке 7

расследований, чтобы увидеть, если есть проблема с рекурсивными зависимостями с папками поставщиков.

Для того, чтобы быть ясным, вы можете предоставить вывод go env?

+0

Вы правы, что 'go test' находит каталоги с поставщиками, и я считаю, что возникла проблема с файлом-нарушителем (ссылка на пакет, который не существовал), но даже когда я обновляю, что он все еще не работает , В этом случае проблема заключается в том, что файл vendored ссылался на другой файл в своей библиотеке, который был неправильным. Могу ли я изменить эту встроенную строку недостаточно для решения проблемы? –

1

My repo не было указано в GOPATH. Перемещение его на $GOPATH/src/github.com/my-org/my-library сделало трюк.

Смежные вопросы