Go 运行 找不到包

Go run cannot find package

我有一个基于 this 文章的示例项目设置。

这是我的目录结构:

goloang/
└── fooproject
    └── src
       ├── foo
       │   └── foo.go
       └── fooer
           └── fooer.go

我设置了GOTPATH

$ echo $GOPATH
/Users/Bharat/Dev/golang/fooproject

我正在尝试 运行 foor.go,但我收到一个找不到包的错误,即使它存在于 GOPATH 引用的位置,即 src/foo

这就是我运行宁它的方式:

$ pwd
/Users/Bharat/Dev/goloang/fooproject/src/fooer

$ go run fooer.go 
fooer.go:4:3: cannot find package "foo" in any of:
    /usr/local/go/src/foo (from $GOROOT)
    /Users/Bharat/Dev/golang/fooproject/src/foo (from $GOPATH)

这些是文件内容。

src/foo/foo.go:

package foo

import (
  "fmt"
)

func Bar() {
  fmt.Println("bar")
}

src/fooer/fooer.go:

package main

import (
  "foo"
)

func main() {
  foo.Bar()
}

我尝试执行 go build fooer.go 时遇到同样的错误。

项目结构哪里出了问题?

这可能是因为打字错误:

goloang
instead of
golang

你有:

$ echo $GOPATH
/Users/Bharat/Dev/golang/fooproject
                  ^^^^^^
$ pwd
/Users/Bharat/Dev/goloang/fooproject/src/fooer
                  ^^^^^^^