【发布时间】:2021-11-12 07:59:56
【问题描述】:
尝试使用 GoLang 和 MQTT,但 go 似乎找不到包。
% go version
go version go1.16.7 darwin/amd64
foobar.go
package main
import (
"fmt"
"log"
"os/exec"
"time"
mqtt "github.com/eclipse/paho.mqtt.golang"
)
尝试运行时会出现以下错误
go run foobar.go
foobar.go:9:2: no required module provides package github.com/eclipse/paho.mqtt.golang: go.mod file not found in current directory or any parent directory; see 'go help modules'
% go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/{user}/Library/Caches/go-build"
GOENV="/Users/{user}/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/{user}/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/{user}/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.16.7"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/rg/80kn_qfn0_91cv0_fb43_m5r0000gn/T/go-build2547135435=/tmp/go-build -gno-record-gcc-switches -fno-common"
我设置了 $GOPATH 和 $GOROOT 来匹配 go 环境。我什至尝试通过设置 GO111MODULE="off" 回到旧的路径方法,但这导致了这个错误
% go run foobar.go
foobar.go:8:2: cannot find package "github.com/eclipse/paho.mqtt.golang" in any of:
/usr/local/go/src/github.com/eclipse/paho.mqtt.golang (from $GOROOT)
/Users/{user}/go/src/github.com/eclipse/paho.mqtt.golang (from $GOPATH)
我很困惑,因为go get/install github.com/eclipse/paho.mqtt.golang 似乎正在安装我的软件包,而我的软件包正在安装在 go/pkg/ 下,而上面的输出和我阅读的所有文档都表明 /src 那么为什么我有 /pkg 目录。
【问题讨论】:
标签: go go-modules