[英]Golang cannot find/use vendor folder
Does anyone have a clue about why do I get an _
in front of the $GOPATH and $GOROOT when I import github.com/juju/errors
eg 有谁知道我导入github.com/juju/errors
时为什么在$ GOPATH和$ GOROOT前面出现_
的线索
repo structure 回购结构
-$GOPATH/src/github.com/codelingo/lexicon/vendor
-$GOPATH/src/github.com/codelingo/lexicon/codelingo/ast/go/src/main.go
-$GOPATH/src/github.com/codelingo/lexicon/codelingo/ast/go/src/node/node.go
main.go with line number main.go与行号
1 package main
2
3 import (
4 "encoding/json"
5 "fmt"
6 "os"
7 "strings"
8
9 "github.com/juju/errors"
10
11 "./key"
12 "./node"
13 "./parser"
14 "./property"
15 "./util"
16 )
// rest of main.go
node.go with line number 带有行号的node.go
1 package node
2
3 import (
4 "encoding/json"
5 "github.com/juju/errors"
6 "reflect"
7)
//rest of node.go
$ go run main.go
node/node.go:5:2: cannot find package "_/home/jzhu/go/src/github.com/codelingo/lexicon/codelingo/ast/go/src/vendor/github.com/juju/errors" in any of:
/usr/local/go/src/_/home/jzhu/go/src/github.com/codelingo/lexicon/codelingo/ast/go/src/vendor/github.com/juju/errors (from $GOROOT)
/home/jzhu/go/src/_/home/jzhu/go/src/github.com/codelingo/lexicon/codelingo/ast/go/src/vendor/github.com/juju/errors (from $GOPATH)
The vendor folder contains the above packages and main.go
can use it (eg import ("github.com/juju/errors")
). vendor文件夹包含以上软件包, main.go
可以使用它(例如import ("github.com/juju/errors")
)。
The vendor folder is under my $GOPATH (/home/jzhu/go) 供应商文件夹位于我的$ GOPATH(/ home / jzhu / go)下
Note: there is a weird "_" in front of the package path. 注意:包路径前面有一个奇怪的“ _”。
I was expecting something as following which looks into the vendor tree. 我一直期待着以下内容,可以看到供应商树。
vendor/github.com/codelingo/lingo/service/server/service.go:10:2: cannot find package "github.com/codelingo/platform/controller/graphdb/query/result" in any of:
/home/jzhu/go/src/github.com/codelingo/platform/vendor/github.com/codelingo/platform/controller/graphdb/query/result (vendor tree)
/home/jzhu/go/src/github.com/vendor/github.com/codelingo/platform/controller/graphdb/query/result
/usr/local/go/src/github.com/codelingo/platform/controller/graphdb/query/result (from $GOROOT)
/home/jzhu/go/src/github.com/codelingo/platform/controller/graphdb/query/result (from $GOPATH)
Environment: 环境:
$go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/jzhu/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build894537960=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
$ go version
go version go1.8.3 linux/amd64
$ glide --version
glide version 0.13.0-dev
The solution is to use the correct relative path to package in import. 解决方案是使用正确的相对路径打包导入文件。 eg import "github.com/codelingo/lexicon/codelingo/ast/go/src/node"
instead of import "./node"
in main.go
例如, import "github.com/codelingo/lexicon/codelingo/ast/go/src/node"
而不是在main.go
中import "./node"
https://github.com/Masterminds/glide/issues/602 https://github.com/Masterminds/glide/issues/602
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.