Golang找不到本地路径的模块

时间:2019-12-21 15:12:48

标签: go import package

我想从主程序包中推出一些API到单独的程序包中:

myapp/
    main.go
    myapi/
        myapi.go

我在main.go里面

package main

import "./myapi"

...

myapi.go开头为:

package myapi

...

当我尝试运行main时,似乎找不到我的myapi #include。它给了我以下错误:

D:\go\myapp> go run .
build _/D_/go/myapp/myapi: cannot find module for path _/D_/go/myapp/myapi

我来自C / C ++领域,如何将golang中的子文件夹包含进来是非常不明显的。你能帮我吗?

1 个答案:

答案 0 :(得分:1)

Go使用一种称为“模块路径”的东西。这些是标识您的软件包的路径。它们不一定与文件系统有关。

模块路径的一个示例是github.com/hajimehoshi/ebiten

如果您使用的是Go模块,这也是Go自动从其下载路径。

如果使用$ GOPATH,则进入模块源的路径为go/src/github.com/hajimehoshi/ebiten

使用go mod init <module path>使用新的模块路径初始化模块。通常,这将是您的GitHub存储库,没有https://。这将使您和您的其他代码都可以使用该模块路径进行访问。然后应该可以通过myapi访问import "github.com/username/repo/myapi"

如果您仍然希望使用旧的$ GOPATH方法,只需将代码放在go/src/<module path>内。访问myapi的方法是等效的。

阅读Using Go ModulesHow to write Go code以获得更多信息。