Go 模块:"cannot find module providing package" 正在导入依赖项的子包
Go modules: "cannot find module providing package" importing sub package of a dependency
我在 $GOPATH
之外有一个项目,我想使用 go mod
。
但是,当我从 $GOPATH
和 运行
中的项目复制代码时
$ GO111MODULE=on go mod init github.com/jgoc/modtest
$ GO111MODULE=on go run main.go
我收到一个错误。
go version go1.12.5 windows/amd64
package main
import (
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/vector"
)
build command-line-arguments: cannot load github.com/hajimehoshi/ebiten/vector: cannot find module providing package github.com/hajimehoshi/ebiten/vector
根据最近提供实际包名称的编辑,听起来您需要使用具有 vector
包的 github.com/hajimehoshi/ebiten
依赖项版本。
具有有效 semver 发布标记的 github.com/hajimehoshi/ebiten
的最新版本是 https://github.com/hajimehoshi/ebiten/tree/v1.9.3。该版本似乎没有 vector
包。
@master
版本有一个 vector
包。 @v1.10.0-alpha
没有 vector
包。也许从 @master
开始,至少看看你能不能编译?
这对我有用:
go get -d github.com/hajimehoshi/ebiten/vector@master
有关详细信息,请阅读模块 wiki 的 How to Upgrade and Downgrade Dependencies 部分。
此外,您的模块的实际名称是什么?您用来导入该模块中代码的实际导入路径是什么?
您写道:
go mod init Desktop/modtest
通常,模块的名称(也称为 "module path")应以主机名开头,例如 github.com,最常见的是 repo,例如:
go mod init github.com/my/repo
.
然后您使用以您传递给 go mod init
的完整模块路径开头的导入路径在 .go
代码中导入包,例如:
import "github.com/my/repo/pkg1"
.
使用您的示例,它将是:
go mod init github.com/<author>/<package>
进口将是:
import (
"github.com/<author>/<package>"
"github.com/<author>/<package>/<sub-package>"
)
如果您的模块路径与您的导入路径不一致,您可能会收到类似于您所看到的错误。 (您的 "module path" 是您作为参数传递给 go mod init
的内容,然后您可以在 go.mod
文件的 module
行中看到它。
请参阅 了解更多上下文和更多详细信息。
我在 $GOPATH
之外有一个项目,我想使用 go mod
。
但是,当我从 $GOPATH
和 运行
$ GO111MODULE=on go mod init github.com/jgoc/modtest
$ GO111MODULE=on go run main.go
我收到一个错误。
go version go1.12.5 windows/amd64
package main
import (
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/vector"
)
build command-line-arguments: cannot load github.com/hajimehoshi/ebiten/vector: cannot find module providing package github.com/hajimehoshi/ebiten/vector
根据最近提供实际包名称的编辑,听起来您需要使用具有 vector
包的 github.com/hajimehoshi/ebiten
依赖项版本。
具有有效 semver 发布标记的 github.com/hajimehoshi/ebiten
的最新版本是 https://github.com/hajimehoshi/ebiten/tree/v1.9.3。该版本似乎没有 vector
包。
@master
版本有一个 vector
包。 @v1.10.0-alpha
没有 vector
包。也许从 @master
开始,至少看看你能不能编译?
这对我有用:
go get -d github.com/hajimehoshi/ebiten/vector@master
有关详细信息,请阅读模块 wiki 的 How to Upgrade and Downgrade Dependencies 部分。
此外,您的模块的实际名称是什么?您用来导入该模块中代码的实际导入路径是什么?
您写道:
go mod init Desktop/modtest
通常,模块的名称(也称为 "module path")应以主机名开头,例如 github.com,最常见的是 repo,例如:
go mod init github.com/my/repo
.
然后您使用以您传递给 go mod init
的完整模块路径开头的导入路径在 .go
代码中导入包,例如:
import "github.com/my/repo/pkg1"
.
使用您的示例,它将是:
go mod init github.com/<author>/<package>
进口将是:
import (
"github.com/<author>/<package>"
"github.com/<author>/<package>/<sub-package>"
)
如果您的模块路径与您的导入路径不一致,您可能会收到类似于您所看到的错误。 (您的 "module path" 是您作为参数传递给 go mod init
的内容,然后您可以在 go.mod
文件的 module
行中看到它。
请参阅