我有一个main.go
package main
import (
"context"
"fmt"
"log"
model "model"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func handler(...){
}我尝试导入model目录中的模型,该文件名为model.go
它只包含:
package model
type xxx struct {
xxx
}我主要尝试导入这个文件,但是我有一个错误:
build: cannot load model: cannot find module providing package model发布于 2020-03-29 20:09:39
如果您的go.mod如下所示:
module github.com/meakesbia/myproject
go 1.14然后,您需要使用完整的模块引用导入模块包:
import "github.com/meakesbia/myproject/model"如果它是一个完全本地的项目,那么将github.com/meakesbia替换为来自go.mod的模型名,例如:
module meakesbia/myproject
go 1.14import "meakesbia/myproject/model"除非您对从github导入的模块进行本地更改,否则不需要将replace指令添加到go.mod文件中。
发布于 2020-03-29 20:30:20
如果您的模块model不是本地的,那么您可以使用Tonys的答案,并且它会很好地工作,但是如果您在本地使用这个模块,那么您将需要在您的go.mod文件中添加路径。
因此,例如,本地模块model只包含具有以下内容的model.go
package model
type Example struct {
Name string
}
func (e *Example) Foo() string {
return e.Name
}对于这个本地模块,必须使用命令go mod init model插入模块,./model/go.mod的内容将是
module model
go 1.13在导入该模块的主模块中,需要添加以下行
require model v1.0.0
replace model v1.0.0 => {Absolute or relative path to the model module}因此,您的main测试模块的go.mod文件如下所示
module main
require model v1.0.0
replace model v1.0.0 => ./model
go 1.13通过设置这个模块,您可以在这个test模块中使用这个模块,只需使用import "model"
因此,当使用主方法测试模块时
package main
import (
model "model"
)
func main() {
example := model.Example{
Name: "Hello World",
}
println(example.Foo())
}输出将是
Hello Worldhttps://stackoverflow.com/questions/60919877
复制相似问题