6

我正在运行 go1.6 并且在 GOPATH (/Users/bweidlich/Projects/go) 中运行“go build”时出现以下错误

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)

项目结构:

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"
)
4

1 回答 1

5

您的main.go文件需要在工作空间内(即在 gopath 内)才能出售其依赖项。作为测试,试着把你main.go的路径放在一个假的路径中,看看是否找到了 vendored deps:

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

通常,您不希望在 gopath 根src目录之外存储任何代码。也就是说,您应该回显go get创建目录时将使用的结构。

于 2016-03-21T02:11:21.153 回答