【发布时间】:2021-09-16 12:39:01
【问题描述】:
我有一个包,我想用foo 分解我的代码,它位于一个名为utils 的子目录中。当我尝试将其导入我的 main.go 时,它找不到它。不知道我做错了什么。
运行go build时出错
错误:
main.go:7:2: local import "./utils/csrf" in non-local package
所以我的文件夹结构如下:
github.com/project
/utils
foo.go
main.go
包是这样写的:
package foo
import (
"fmt"
)
func Bar() {
fmt.Printf("function")
}
去模组:
module github.com/project
go 1.15
我尝试导入的内容与我的 main.go 文件中的一样。
import (
"fmt"
"github.com/project/utils/foo"
)
【问题讨论】:
-
您缺少
go.mod文件。在项目目录中运行以下命令:go mod init github.com/project. -
@mkopriva 抱歉编辑添加此内容。我确实有一个设置。
-
我正在使用 vscode 并假设它会根据需要向 go.mod 添加项目?
-
确切的错误信息是什么?如果您使用的是 IDE,请尝试在不使用 IDE 的情况下编译程序,即在项目目录中运行
go build,如果可以,则表示 IDE 配置不正确或支持蹩脚。 -
您问题中的代码与错误不匹配。您声明
main.go文件中的导入是"fmt"和"github.com/project/utils/foo",但错误抱怨"./utils/csrf"。要么您在错误的项目中运行go build,要么问题中的代码与您的实际代码相去甚远。
标签: go package go-modules