【问题标题】:Go run cannot find package运行找不到包
【发布时间】:2016-03-31 21:27:06
【问题描述】:

我有一个基于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 时,我得到了同样的错误。

我的项目结构哪里出了问题?

【问题讨论】:

    标签: go packages


    【解决方案1】:

    这可能是因为一个错字:

    goloang
    instead of
    golang
    

    你有:

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

    【讨论】:

    • 啊!我的眼睛好像不好。这真是一个愚蠢的错误。另一双眼睛看着它很有帮助!现在可以了。
    • @Bharat 晚上 11 点在旧金山...我明白 ;) 我去过那里很多次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2015-11-05
    • 2015-11-05
    相关资源
    最近更新 更多