Golang中如何导入上级子目录中的本地包
Golang中如何导入上级子目录中的本地包 你好,我在使用 Go 包时遇到了一个问题,也许这里有人可以帮我澄清一下。
我的项目结构如下

另外,main.go 文件位于 “content” 文件夹的同一层级。
我该如何将名为 “package acnhapi.go” 的 acnhapi.go 包导入到 bugs.go 文件中?我几乎尝试了所有我能想到的方法,但还是找不到解决办法。
提前感谢。
更多关于Golang中如何导入上级子目录中的本地包的实战教程也可以访问 https://www.itying.com/category-94-b0.html
3 回复
导入Go包可以这样理解:
你的go.mod文件:
module myawesomemodule
现在,根据你的项目结构,每个导入都可以用这个模块名作为前缀。
main.go:
package main
import "myawesomemodule/content/bugs"
func main() {
bugs.SomeFunc()
}
bugs.go:
package bugs
import "myawsomemodule/api"
func SomeFunc() {
api.CallAPI()
}
以此类推……
如果你还没有使用Go模块,现在就是时候了,可以通过执行 go mod init ${your_module_name} 来开始。这会让你的开发工作轻松很多。
在Golang中导入上级子目录的本地包,需要使用模块路径结合相对路径。根据你的项目结构,假设你的go.mod文件在项目根目录,可以这样操作:
首先确保项目根目录有go.mod文件:
go mod init your-module-name
然后在bugs.go中导入acnhapi包:
package main
import (
"your-module-name/acnhapi" // 使用模块路径 + 包目录路径
)
func main() {
// 使用acnhapi包的功能
acnhapi.SomeFunction()
}
关键点:
acnhapi.go文件需要声明正确的包名(第一行应该是package acnhapi)acnhapi.go需要放在单独的目录中,Go约定包名与目录名一致- 如果
acnhapi目录下有多个.go文件,它们都应该属于同一个包
如果acnhapi目录下只有一个acnhapi.go文件,文件内容示例:
// acnhapi/acnhapi.go
package acnhapi
import "fmt"
func GetData() {
fmt.Println("Fetching data from ACNH API")
}
在bugs.go中调用:
package main
import (
"fmt"
"your-module-name/acnhapi"
)
func main() {
data := acnhapi.GetData()
fmt.Println("Data received:", data)
}
如果导入仍然失败,检查go.mod中的模块名称是否正确,并确保在项目根目录执行go mod tidy来同步依赖。

