我的主文件无法找到我创建的另一个导入主文件的文件

时间:2016-04-01 00:25:59

标签: go

我有以下文件结构:

- project/
  - src/
    - main/
      - main.go
    - viewmodels/
      - home.go
  - public/

我的项目位于: ~/go/src/

当我尝试运行我的主文件时,它会抛出错误:

src/main/main.go:10:2: cannot find package "viewmodels" in any of:
    /usr/local/Cellar/go/1.5.3/libexec/src/viewmodels (from $GOROOT)
    /Users/nicholasrucci/go/src/viewmodels (from $GOPATH)

看起来主要是在错误的位置寻找package viewmodels。根据我的理解,在阅读How to Write Go Code并且之前的程序运行正常后,我的配置设置正确,但显然有些问题。

.zshrc

中获取相关配置
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/opt/go/libexec/bin
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:/usr/local/go/bin

main.go 的摘录:

package main

import (
    "bufio"
    "log"
    "net/http"
    "os"
    "strings"
    "text/template"
    "viewmodels"
)

home.go 的摘录:

package viewmodels

import ()

正在进行的任何方向以及我如何解决这个问题都会很棒。感谢。

2 个答案:

答案 0 :(得分:1)

您应该使用导入路径的完整包名称:"project/src/viewmodels"在这种情况下,假设项目位于/Users/nicholasrucci/go/src下,但我会以不同方式构建项目文件夹(例如,没有src文件夹)< / p>

或者,您可以将GOPATH设置为项目文件夹的完全限定路径,这样就可以将main.go设为import "viewmodels"了。

答案 1 :(得分:0)

这对我来说很好用:

<强>的src /主/ main.go

package main

import (
    "viewmodels"
)

func main() {
    viewmodels.Something()
}

<强>的src /的ViewModels / home.go

package viewmodels

import ()

func Something() {

}

我猜这是你的env变量。