2016-10-05 93 views
0

我正在重新学习Go。我使用gvm安装了最新的Go版本(1.7.1),我正在使用gin构建一个简单的休息API应用程序。我使用glide get https://github.com/gin-gonic/ginglide)安装了它,并在我的项目根目录下创建了一个“vendor”文件夹。运行我的应用程序,虽然,go run main.go,我遇到这个错误供应商目录未用于解决导入问题生成

main.go:3:8: cannot find package "github.com/gin-gonic/gin" in any of: 
    /home/yowmamasita/.gvm/gos/go1.6.3/src/github.com/gin-gonic/gin (from $GOROOT) 
    /home/yowmamasita/.gvm/pkgsets/go1.6.3/global/src/github.com/gin-gonic/gin (from $GOPATH) 

它不解决刚刚创建

. 
├── glide.lock 
├── glide.yaml 
├── main.go 
├── README.md 
└── vendor 
    └── github.com 
     └── gin-gonic 
      └── gin 

不知道这里发生了什么的“供应商”目录滑行,我1.5后认为,它应该能够解决从“供应商”目录导入而无需执行任何操作。我甚至将我的项目文件夹在我的$GOPATH

/home/yowmamasita/.gvm/pkgsets/go1.7.1/global:/home/yowmamasita/goprojects

我在做什么错在这里?我也尝试了1.6.3,并得到相同的错误。

+0

什么的输出'去env'和'去version'? – putu

+0

@putu https://ghostbin.com/paste/ayebv – yowmamasita

+0

文件夹'/ home/yowmamasita/goprojects'不在你的'GOPATH'中。修改'GOPATH'变量后,确保运行'source .bashrc'或'source .bash_profile'或者直接启动一个新的终端。 – putu

回答

1

请确保:

  1. 工作区(/home/yowmamasita/goprojects)添加到$GOPATH变量。
  2. 通常在工作区下会有三个目录,分别是bin,pkgsrcMore details
  3. 可以省略pkgbin,但使用vendor包或自定义包的项目必须$GOPATH/src下放置,否则go编译器将无法识别它。

更多的讨论可以发现herehere

结构应该是这样的:

$GOPATH 
└── src 
    └── YOURPROJECT1 
      ├── source codes #1 
      └── vendor/ 

    └── YOURPROJECT2 
      ├── source codes #2 
      └── vendor/