未解决供应商目录中的依赖关系
Posted
技术标签:
【中文标题】未解决供应商目录中的依赖关系【英文标题】:Not resolving dependency in vendor directory 【发布时间】:2016-07-07 07:10:59 【问题描述】:我正在运行 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"
)
【问题讨论】:
为什么你的项目目录中有bin
、pkg
和src
?您的项目应位于其导入路径。这里的整体结构是什么?
【参考方案1】:
您的 main.go
文件需要位于工作空间内(即在 gopath 内),才能出售其依赖项。作为测试,请尝试将您的 main.go
放入虚假路径中,看看是否找到了 vendored deps:
$GOPATH/src/
example.com/
main.go
vendor/
github.com/
spf13/viper/
gizak/termui/
一般来说,您不希望在 gopath 根 src
目录之外存储任何代码。也就是说,您应该回显go get
在创建目录时将使用的结构。
【讨论】:
以上是关于未解决供应商目录中的依赖关系的主要内容,如果未能解决你的问题,请参考以下文章