尽管设置了go get github.com/gogo/protobuf/proto
,但GOPATH
命令似乎无法正常工作。
GOPATH="/Users/tmp/Documents/workspace/app/go"
我发现其他软件包存在类似问题。
读错误:
package github.com/gogo/protobuf/proto: cannot find package "github.com/gogo/protobuf/proto" in any of:
/usr/local/go/src/github.com/gogo/protobuf/proto (from $GOROOT)
/Users/tmp/Documents/workspace/app/go/src/github.com/gogo/protobuf/proto (from $GOPATH)
正在运行go env
显示:
GOARCH="amd64"
GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin"
GOPATH="/Users/tmp/Documents/workspace/app/go" GORACE=""
GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"
问题是什么?我该如何解决这个问题?我在网上找不到任何东西,但这是先前的工作。
答案 0 :(得分:3)
我不知道删除整个文件夹是否是必要的。
首先,您可以尝试使用-u
标志(go cmd doc)重新安装所有其他依赖项。
-u标志指示get使用网络更新命名包及其依赖项。默认情况下,get使用网络检出丢失的包,但不使用它来查找现有包的更新。
go get支持还可以构建标志来重建您可以尝试的包-a
:
-a 强制重建已经是最新的包。
答案 1 :(得分:1)
经过一番摆弄,我发现src目录中的源文件被删除了。我删除了整个文件夹及其内容,导致整个软件包重新安装。这似乎已经解决了问题并解决了它。
我应该注意到我在调试过程中遇到了另一个错误:
/Users/tmp/Documents/workspace/app/go/src/github.com/golang/protobuf/proto
中没有可构建的Go源文件
同样,在删除源文件夹中的整个包之后,这一切都得到了解决。
@Mark:需要注意的一点是,我根据https://github.com/golang/protobuf引用了正确的包名称。