这个问题在这里已经有了答案:
Relative imports in Go
(6 个回答)
2年前关闭。
我真的是 Go 新手,我正在尝试在 main.go 中导入本地文件。
这是项目的结构:
-project_name(dir)
--src(dir)
---main.go
---auth(dir)
----signup.go
我正在尝试使用我在
signup.go
中编写的函数在 main.go
.这就是我尝试导入
signup.go
的方式在 main.go
:import (
"encoding/json"
"fmt"
"log"
"net/http"
"github.com/gorilla/mux"
auth "./auth"
)
并像这样使用它:
myRouter.HandleFunc("/signup", auth.signupUser).Methods("POST")
我还尝试复制相对
auth dir
并将其写入导入但我仍然收到错误undefined: auth go
我试图寻找答案,但我看不出我在做什么与我看到的答案不同。
最佳答案
Go 中不建议使用相对导入。
如果 project_name
在你的 GOPATH 中,比如 $GOPATH/github.com/john/project_name
,可以导入auth
像这样:
import "github.com/john/project_name/src/auth"
如果您使用 Go modules , 然后代替
github.com/john/project_name
,使用您的go.mod
中的任何名称.如果您不使用 Go 模块但想使用,可以执行 go mod init github.com/john/project_name
而在project_name
文件夹,然后该文件夹将用作基础。请注意
signupUser
实际上必须是 SignupUser
被导出(因此可用)。
关于go - 导入本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794042/