我使用命令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"
我与这个错误打了一个星期,但我找不到解决方案。请帮帮我。
答案 0 :(得分:8)
您可以尝试以下步骤进行调试:
ls -l /usr/local/go/src/github.com | grep gorilla
cd $GOPATH
go list ... | grep gorilla
如果您在上述两个命令中看不到大猩猩,那么您需要安装它:
go get -v -u github.com/gorilla/mux
请运行:export PATH=$PATH:$GOPATH/bin
如何运行go run main.go
?这是有效的,如果是,你应该能够从你的项目路径go build
。
答案 1 :(得分:3)
如果您使用 VS Code 作为您的IDE并遇到此问题:
VS Code使用$HOME/go
作为默认GOPATH
-如果导出另一个GOPATH
,则会遇到麻烦。
如何解决:
cd prjectFolder
。键入go env
并检查GOPATH
项是否与使用cmd+t
然后使用>Go: Current GOPATH
"go.gopath": "/some/path"
其中/some/path
与您在shell,zsh等中导出的路径相同。 希望这会有所帮助。
答案 2 :(得分:1)
只需删除这样的引号:
go get github.com/gorilla/mux
答案 3 :(得分:1)
答案 4 :(得分:0)
尝试go build /Users/imac/go/src/project
因为我发现您尝试在go build
/Users/imac/go/src
答案 5 :(得分:0)
我希望这会有所帮助。 您可以关闭“ mod”。
$ export GO111MODULE=off
答案 6 :(得分:0)
也许这可以帮助在 Windows 中运行的其他用户。 就我而言,我必须创建两个符号链接:
在这里你会注意到 mux 包可能被列为 mux@v1.8.0
有了这个,go就可以找到github.com/gorilla/mux 在 %gopath%\src\github.com\gorilla\mux
下最后,您必须将 GO111Module 设置为关闭 设置 GO111Module=off
现在您可以构建您的应用了: