2016-03-20 14 views
6

biegnę go1.6 i otrzymuję błąd obserwacji podczas pracy "go zbudować" w GOPATH (/ Users/bweidlich/Projekty/przejść)Nie rozwiązywaniu zależność w katalogu dostawcy

main.go:6:2: cannot find package "github.com/spf13/viper" in any of: 
/usr/local/go/src/github.com/spf13/viper (from $GOROOT) 
/Users/bweidlich/Projects/go/src/github.com/spf13/viper (from $GOPATH) 

struktura projektu:

bin/ 
glide.lock 
glide.yaml 
go.iml 
logs/ 
main.go 
pkg/ 
src/ 
vendor/ 
     github.com/ 
       deckarep/gosx-notifier 
       spf13/viper 
       gizak/termui 

main.go

package main 

import (
    "fmt" 
    "github.com/gizak/termui" <--- doesn't resolve 
    "github.com/spf13/viper" <--- doesn't resolve 
    "log" 
    "bweidlich/dash" 
    "net/http" 
    "os" 
    "os/exec" 
    "time" 
) 
+0

Dlaczego w katalogu projektu znajdują się 'bin',' pkg' i 'src'? Twój projekt powinien znajdować się na ścieżce importu. Jaka jest tutaj ogólna struktura? – JimB

Odpowiedz

5

plik main.go musi znajdować się wewnątrz obszaru roboczego (czyli ins ide gopath), aby jego zależności zostały przekazane. Jako test, spróbuj oddanie main.go wewnątrz fałszywej ścieżce i sprawdzić, czy znajdują się vendored deps:

$GOPATH/src/ 
    example.com/ 
    main.go 
    vendor/ 
    github.com/ 
     spf13/viper/ 
     gizak/termui/ 

Generalnie nie chcesz zapisać dowolny kod w swoim gopath poza swoim głównym katalogu src. Oznacza to, że powinieneś powtórzyć strukturę, której użyłaby go get podczas tworzenia katalogów.

Powiązane problemy