project.go:6:2: cannot find package "example.com/project/package" in any of:
/usr/local/Cellar/go/1.1.2/libexec/src/pkg/example.com/project/package (from $GOROOT)
/Users/me/go/src/example.com/project/package (from $GOPATH)
Fetching https://example.com/project/package?go-get=1
ignoring https fetch with status code 404 Fetching http://example.com/project/package?go-get=1
Parsing meta tags from http://example.com/project/package?go-get=1 (status code 404)
import "example.com/project/package": parse http://example.com/project/package?go-get=1: no go-import meta tags
package example.com/project/package: unrecognized import path "example.com/project/package"
为什么不能去获取/构建找到本地包。我知道go get将在我的repo上失败,因为它是空的,但是go get似乎完全忽略了本地文件,迫使我在编译代码之前提交和推送代码。这是通过brew安装的OSX10.8和Go 1.1.2。GOPATH设置为/Users/me/go,而GOROOT为空。
我应该注意,在我的Windows机器上使用go get in gitbash时,我根本没有这个问题。我已经尝试了所有我能想到的google-fu搜索,但是每个人都声称你可以使用相对的“项目/包”导入,在这种情况下也完全失败。
发布于 2013-12-07 02:24:33
通过brew upgrade go
从go1.1.2升级到go1.2解决了这个问题
发布于 2013-12-05 04:46:16
您可以在本地使用代码,而不必按它--您只需要您的文件夹结构来模拟导入路径。
将库代码放在src/
目录中,文件夹结构模仿导入路径:
[15:42] foa:home $ tree
.
├── myprogram.go
└── src
└── example.com
└── project
└── mypackage
└── mypackage.go
然后将GOPATH设置为包含src/
的目录,您将能够构建该项目:
[15:42] foa:home $ export GOPATH=`pwd`
[15:42] foa:home $ go build
这是myprogram.go
package main
import "example.com/project/mypackage"
func main() {
mypackage.Run()
}
和mypackage.go
package mypackage
import "fmt"
func Run() {
fmt.Println("It works.")
}
常见的做法是像这样布局您的工作目录,然后将实际的git存储库根植到最低级别(例如,在src/example.com/project/mypackage
中),以便它们为其他用户干净地使用go get
和go install
。
https://stackoverflow.com/questions/20381343
复制相似问题