错误消息是:
app.go:9:3: cannot find package "github.com/gorrila/mux" in any of:
/usr/local/Cellar/go/1.10.3/libexec/src/github.com/gorrila/mux (from
$GOROOT)
/Users/myname/go/src/github.com/gorrila/mux (from $GOPATH)
我了解GOROOT适用于安装随附的编译器工具,因此我不确定为什么它会在其中查找多路复用器。但是我确实在为go代码创建的目录的第二个位置看到了mux。
我知道有人问这个问题once before,我尝试按照该问题的建议进行调试。
我使用自制软件并安装了go版本
go1.10.3 darwin/amd64
。我认为这是我的环境中的相关部分:
GOPATH="/Users/myname/go"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.10.3/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.10.3/libexec/pkg/tool/darwin_amd64"
我还设置了bash个人资料,但不包括GOROOT,因为that is no longer required:
export GOPATH="/Users/myname/go/src/github.com"
export PATH="/Users/myname/go/src/github.com/bin:$PATH"
并做了
source ~/.bash_profile
。这个设置足以让我运行基本的go程序,例如hello world。因此,我然后尝试使用
mux
库运行代码。我首先在程序目录中安装了mux(将其安装到
/Users/myname/go/src/github.com/myname/restapi
中)。然后我跑了:
go get -u github.com/gorilla/mux
我可以看到文件夹存在于我的查找器中。我还查看了终端:
ls -l /Users/myname/go/src/github.com | grep gorilla
=> drwxr-xr-x 3 myname staff 102 Jun 29 14:35 gorilla
然后:
cd $GOPATH (/Users/myname/go)
go list ... | grep gorilla
=> can't load package: package ../..: no Go files in /Users
所以我在第一个命令中看到了大猩猩,但第二个命令中却没有。但是,我确实在go目录中进一步看到了gorilla目录,所以我不确定是什么问题。
运行
go build
返回关注的包:app.go:9:3: cannot find package "github.com/gorrila/mux" in any of:
/usr/local/Cellar/go/1.10.3/libexec/src/github.com/gorrila/mux
(from $GOROOT)
/Users/myname/go/src/github.com/gorrila/mux (from $GOPATH)
我不确定为什么要在usr目录中查找多路复用器。我的路径有问题吗?我一直在检查最后一个路径,以查看mux目录是否存在。
最佳答案
看来您拼写了"github.com/gorilla/mux"
–它有一个“r”和两个“l”。 (仔细比较您引用的go get
命令和源文件中的import
语句。)