登录
首页 >  Golang >  Go问答

如何从Go模块导入特定的包?

来源:stackoverflow

时间:2024-04-11 13:36:37 246浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《如何从Go模块导入特定的包?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

golang 1.11beta2 引入了对模块的实验性支持。

我无法从 go 模块导入特定包。

这是构建应用程序时的错误:

$ go install
go: downloading github.com/udhos/modhello/modlib/lib v1.0.0
go: finding github.com/udhos/modhello latest
go: import "github.com/udhos/modhello/modapp" ->
    import "github.com/udhos/modhello/modlib/lib": cannot find module providing package github.com/udhos/modhello/modlib/lib

为什么上面显示的导入失败?

这是模块“modlib”中的包“lib”:

# repo: modhello
# module: modlib
# package: lib
$ cat modhello/modlib/lib/modlib.go
package lib
func sum(a, b int) int {
    return a + b
}
$ cat modhello/modlib/go.mod
module github.com/udhos/modhello/modlib

这是应用程序“modapp”:

$ cat modhello/modapp/main.go
package main
import (
        "log"
        "github.com/udhos/modhello/modlib/lib"
)
func main() {
        run(1, 2)
}
func run(a, b int) {
        log.printf("sum(%d,%d) = %d", a, b, lib.sum(a, b))
}
$ cat modhello/modapp/go.mod
module github.com/udhos/modhello/modapp
require github.com/udhos/modhello/modlib v1.0.0

git 存储库标记为“modlib/v1.0.0”。这就是发布模块版本的方式。

go版本:

$ go version
go version go1.11beta2 linux/amd64
$ git --version
git version 2.18.0

我也在 golang-nuts 上发布了这个疑问:在一个 git 存储库中托管两个不同的模块?


解决方案


go clean -modcache 修复了该问题。

更多详情请点击:https://github.com/golang/go/issues/26695

好了,本文到此结束,带大家了解了《如何从Go模块导入特定的包?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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