在以下任何一个中找不到包“github.com/gorilla/mux”:

时间:2017-01-09 01:51:08

标签: go

我使用命令go get github.com/gorilla/mux。我使用Golang创建了http服务器,然后运行了这个程序:

package main

import (
    "fmt"
    "html"
    "log"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {

    router := mux.NewRouter().StrictSlash(true)
    router.HandleFunc("/", Index)
    log.Fatal(http.ListenAndServe(":8080", router))
}

func Index(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))

但是我发现了这个错误:

/usr/local/go/bin/go build -i [/Users/imac/go/src]
http.go:9:5: cannot find package "github.com/gorilla/mux" in any of:
    /usr/local/go/src/github.com/gorilla/mux (from $GOROOT)
    ($GOPATH not set)
Error: process exited with code 1.

我的Go环境就在这里:

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/imac/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/v9/fkc_t97s5v1g9sr938zzvxvh0000gn/T/go-build096571864=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"

我与这个错误打了一个星期,但我找不到解决方案。请帮帮我。

7 个答案:

答案 0 :(得分:8)

您可以尝试以下步骤进行调试:

  1. ls -l /usr/local/go/src/github.com | grep gorilla
  2. cd $GOPATH

    go list ... | grep gorilla

  3. 如果您在上述两个命令中看不到大猩猩,那么您需要安装它: go get -v -u github.com/gorilla/mux

  4. 请运行:export PATH=$PATH:$GOPATH/bin

    如何运行go run main.go?这是有效的,如果是,你应该能够从你的项目路径go build

答案 1 :(得分:3)

如果您使用 VS Code 作为您的IDE并遇到此问题:

VS Code使用$HOME/go作为默认GOPATH-如果导出另一个GOPATH,则会遇到麻烦。

如何解决:

  1. 使用VS Code内部终端并导航到项目文件夹:cd prjectFolder。键入go env并检查GOPATH项是否与使用cmd+t然后使用>Go: Current GOPATH
  2. 时得到的相同
  3. 如果不合适,请添加用户设置: "go.gopath": "/some/path" 其中/some/path与您在shell,zsh等中导出的路径相同。

希望这会有所帮助。

答案 2 :(得分:1)

只需删除这样的引号:

go get github.com/gorilla/mux

答案 3 :(得分:1)

我尝试删除listgithub.com/gorilla目录,然后重试:github.com/peterbourgon,它可行。

enter image description here

make

答案 4 :(得分:0)

尝试go build /Users/imac/go/src/project

因为我发现您尝试在go build

下使用/Users/imac/go/src

答案 5 :(得分:0)

我希望这会有所帮助。 您可以关闭“ mod”。

$ export GO111MODULE=off

答案 6 :(得分:0)

也许这可以帮助在 Windows 中运行的其他用户。 就我而言,我必须创建两个符号链接:

  1. 以管理员身份运行cmd
  2. cd %gopath%
  3. mklink /D src pkg\mod
    这会在 src 和 pkg\mod 之间创建一个符号链接
  4. cd src\github.com\gorilla

在这里你会注意到 mux 包可能被列为 mux@v1.8.0

  1. mklink /D mux mux@v1.8.0

有了这个,go就可以找到github.com/gorilla/mux 在 %gopath%\src\github.com\gorilla\mux

最后,您必须将 GO111Module 设置为关闭 设置 GO111Module=off

现在您可以构建您的应用了:

  • 去构建 app.go