go modules-替换不起作用-没有版本的替换模块必须是目录路径(root或以

时间:2019-04-05 11:02:27

标签: go go-modules

我只想通过go模块使用本地包。

我在goweb文件夹中有这些文件:

enter image description here

和go.mod

模块goweb

def nodecolor():
    node_colors = []
    for n in Graph.nodes():
        if n in list(NodeList1):
            node_colors.append('red')
        else:
            node_colors.append('blue')
    return node_colors

但是go 1.12 require mypack v0.0.0 replace mypack => ./src/mypack 抱怨:

go.mod

去-u ./...

replacement module without version must be directory path (rooted or starting with .

所以我在这里缺少一些路径结构

1 个答案:

答案 0 :(得分:1)

如果您的应用程序及其使用的软件包是同一个go模块的一部分,则不必将其添加到go.mod中,只需引用它即可。

如果它们不是同一go模块的一部分,则可以按照以下步骤操作:

您为replace指令指定的路径必须是绝对路径或相对路径,相对于模块根目录

因此,如果mypack是模块根目录的同级对象,则可以使用以下方法:

replace mypack => ../mypack

此外,要使其正常工作,还必须将mypack转换为go模块(mypack必须包含go.mod文件)。在其文件夹中运行go mod init mypack

也请查看相关问题:How to use a module that is outside of "GOPATH" in another module?