猿问

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

Golang 1.11beta2引入了对Modules的实验支持。


我无法从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 version

go version go1.11beta2 linux/amd64

$ git --version

git version 2.18.0

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


Smart猫小萌
浏览 291回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答