You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go1.16开发MQTT项目找不到paho.mqtt.golang依赖包问题

问题原因
  • Go 1.16版本默认将GO111MODULE值为on,默认启用Go Modules依赖管理机制,不再优先使用GOPATH路径查找依赖。
  • 未在项目目录初始化go.mod文件时直接运行代码,模块模式下无法识别依赖归属,就会触发「未找到go.mod文件、无对应模块提供包」的报错。
  • 手动切换GO111MODULE=off启用GOPATH模式时,依赖查找逻辑要求所有第三方包必须存放在$GOPATH/src对应路径下;而模块模式下执行go get/go install下载的依赖默认存放在$GOPATH/pkg/mod缓存目录,不会自动写入src目录,因此GOPATH模式下也找不到对应包。
解决方案

方案1:使用Go Modules(官方推荐,适配所有Go 1.11+版本)

  1. 进入foobar.go所在的项目根目录,执行模块初始化命令:
    go mod init 自定义模块名,示例:go mod init mqtt-test
  2. 执行依赖拉取命令:
    go get github.com/eclipse/paho.mqtt.golang
  3. 直接运行代码即可正常识别依赖:
    go run foobar.go

方案2:继续使用GOPATH模式

如果需要沿用旧的依赖查找逻辑,按以下步骤操作:

  1. 全局设置关闭Go禁用模块开关为off:
    go env -w GO111MODULE=off
  2. 手动创建依赖存放路径:
    mkdir -p $GOPATH/src/github.com/eclipse
  3. 切换到对应路径克隆依赖仓库:
    cd $GOPATH/src/github.com/eclipse && git clone https://github.com/eclipse/paho.mqtt.golang.git
  4. 确保你的项目代码也存放在$GOPATH/src目录下的对应路径,再执行go run foobar.go即可正常运行。

内容的提问来源于stack exchange,提问作者Kevin Riordan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:54:03