去导入本地包

我有一个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


噜噜哒
浏览 90回答 2
2回答

素胚勾勒不出你

如果您的模块model不是本地的,那么您可以使用 Tonys 答案,它会正常工作,但如果您在本地使用此模块,那么您需要在go.mod文件中添加路径。因此,例如,本地模块model仅包含model.go具有以下内容的模块package modeltype Example struct {    Name string}func (e *Example) Foo() string {    return e.Name}对于这个本地模块,必须必须用命令初始化模块,go mod init model并且内容./model/go.mod将是module modelgo 1.13在要导入此模块的主模块中,您需要添加以下行require model v1.0.0replace model v1.0.0 => {Absolute or relative path to the model module}因此,您的main测试模块的go.mod文件将如下所示module mainrequire model v1.0.0replace model v1.0.0 => ./modelgo 1.13通过设置,您可以在此模块中使用此test模块,只需import  "model"因此,当使用 main 方法测试模块时package mainimport (    model "model")func main() {    example := model.Example{        Name: "Hello World",    }    println(example.Foo())}输出将是Hello World

当年话下

如果你go.mod看起来像这样:module github.com/meakesbia/myprojectgo 1.14那么您需要使用完整的模块参考导入模块包:import "github.com/meakesbia/myproject/model"如果它是一个完全本地的项目,则替换github.com/meakesbia为模型名称,go.mod例如:module meakesbia/myprojectgo 1.14import "meakesbia/myproject/model"您不需要向文件添加replace指令,go.mod除非您对从例如github导入的模块进行本地更改。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go