2016-03-20 16 views
6

Tôi đang chạy go1.6 và đang nhận được lỗi sau khi chạy "đi xây dựng" trong GOPATH (/ Users/bweidlich/Dự án/đi)Không giải quyết phụ thuộc trong thư mục nhà cung cấp

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) 

cấu trúc dự án:

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

Tại sao bạn có 'bin',' pkg' và 'src' trong thư mục dự án của bạn? Dự án của bạn phải được đặt tại đường dẫn nhập. Cấu trúc tổng thể ở đây là gì? – JimB

Trả lời

5

tập tin main.go của bạn cần phải được bên trong một không gian làm việc (có nghĩa là, ins ide gopath) cho các phụ thuộc của nó để được vendored. Là một thử nghiệm, hãy thử đặt main.go của bạn bên trong một con đường giả và xem nếu DEPS vendored được tìm thấy:

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

Nói chung, bạn không muốn lưu trữ bất kỳ mã trong gopath của bạn bên ngoài thư mục gốc src của nó. Tức là, bạn nên lặp lại cấu trúc mà go get sẽ sử dụng khi tạo thư mục.

Các vấn đề liên quan