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

Dia*_*ana 8 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))
Run Code Online (Sandbox Code Playgroud)

但我冲突了这个错误:

/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.
Run Code Online (Sandbox Code Playgroud)

我的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"
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*pam 9

你可以这个步骤来调试它:

  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

请运行这个: export PATH=$PATH:$GOPATH/bin

跑步go run main.go怎么样?这是有效的,如果是,你应该可以go build从你的项目路径.


Som*_*jan 8

这对我有用...

  1. 消防指挥 >go mod init <your-directoryNane-where-main.go-exist>
  2. 消防指挥 >go get github.com/gorilla/mux

触发这两个命令后,您将能够看到 2 个文件:

  1. go.mod
  2. go.sum

最后,关闭VS code并再次打开,错误就解决了

  • 这是一个很好的解决方案! (3认同)

小智 6

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

$ export GO111MODULE=off
Run Code Online (Sandbox Code Playgroud)

  • 太好了,这对我有用。它对我不起作用的原因是 gorilla 被下载到 mod 文件夹中,而不是预期的 src 文件夹中。 (2认同)

小智 5

只需删除引号,如下所示:

go get github.com/gorilla/mux
Run Code Online (Sandbox Code Playgroud)


Dav*_*oos 5

如果您使用VS Code作为 IDE 并面临此问题:

VS Code$HOME/go用作您的默认值GOPATH- 如果您导出另一个,GOPATH则会遇到此问题。

怎么解决:

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

希望这可以帮助。