go: cannot find main module; see 'go help modules'
慕的地10843
浏览 157回答 6
6回答
潇潇雨雨
我有同样的问题,它“几乎”直接解决了。起初它没有用。这是因为模块已经初始化,并且我在设置 GO111MODULE=on 之前运行了“go get...”命令。为了让它工作,我删除了“go.mod”,通过运行“go mod init ...”重新初始化了 mod,然后重新运行必要的“go get ...”命令。
刚刚在 go1.11.2 上遇到了同样的问题。试图设置GO111MODULE=on,但这无法解决。我的解决方案:升级以使用 go 1.12.5这可以解决go: cannot find main module; see 'go help modules'问题。然后我遇到了另一个问题go: cannot use path@version syntax in GOPATH mode,这可以解决设置环境GO111MODULE=on
编辑: 这里的原始答案特别提到了 Go 1.11 中工具的状态。自 Go 1.12 发布以来,这不再准确。如果GO111MODULEvar 设置为on,您必须在初始化的 go 模块目录树中才能使用go get,即使您试图获取工具而不是新的依赖项也是如此。短期的解决方案是运行GO111MODULE=off go get <tool>. 这明确地禁用了模块支持,即使你当前在模块包中,并强制它只使用你的 GOPATH。从长远来看,找出支持工具安装的最佳解决方案是什么go get(或其他命令,例如go install带有标志)是一个持续讨论的领域,目前还没有达成共识。然而,有一个针对 Go 1.12 的PR 打开,如果被接受,将允许go get在模块外部简单地工作,即使使用GO111MODULE=onset。