登录
首页 >  Golang >  Go问答

找不到提供包的模块

来源:stackoverflow

时间:2024-04-29 20:42:39 238浏览 收藏

你在学习Golang相关的知识吗?本文《找不到提供包的模块》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我不确定如何解决我在“go mod”中发现的依赖问题。据我所知,它获取了一些子依赖项的错误版本,该子依赖项指向一个不再存在的存储库。

我是个新手,所以我确信我搞砸了,我希望得到一些帮助来了解如何解决这个问题。请检查这些示例:

使用 go get 获得我唯一的依赖效果很好

export gopath=`mktemp -d`
export myapp=`mktemp -d`
cd $myapp

cat << eof > main.go
package main
import (
  "fmt"
  "os"
  "github.com/kubernetes/minikube/pkg/storage"
)
func main() {
  if err := storage.startstorageprovisioner(); err != nil {
    fmt.printf("error starting provisioner: %v\n", err)
    os.exit(1)
  }
}
eof

go get github.com/kubernetes/minikube/pkg/storage
go build && echo "worked" || echo "failed"

但是,用 go mod 获取它不起作用

export gopath=`mktemp -d`
export myapp=`mktemp -d`
cd $myapp

cat << eof > main.go
package main
import (
  "fmt"
  "os"
  "github.com/kubernetes/minikube/pkg/storage"
)
func main() {
  if err := storage.startstorageprovisioner(); err != nil {
    fmt.printf("error starting provisioner: %v\n", err)
    os.exit(1)
  }
}
eof

go mod init github/my/repo
go build && echo "worked" || echo "failed"

如何让最后一个工作正常?

$ go version
go version go1.12 darwin/amd64

解决方案


根据the Go modules wiki

就我所知, go mod init 不会获取您的依赖项,而是会初始化一个新模块并创建一个 mod 文件来跟踪您的模块正在使用的依赖项版本。

所以去获取你的依赖就可以了。

另一方面,Go 模块根据 wiki 再次提供某些功能:

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>