You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go项目导入本地包失败问题求助(含项目结构及代码)

Go本地包导入失败的解决办法

你的问题出在两个核心点:目录名与包名不匹配、跨包调用的函数未导出,按以下步骤修复即可:

1. 统一目录名与包名

你的项目目录是resolver,但resolver.go里声明的包名是resolvers,导入路径也写的resolvers,Go会因为找不到对应目录下的包而报错。有两种修正方式:

方式一:修改目录名

把resolver目录重命名为resolvers,保持和包名、导入路径一致,修改后项目结构:

- myproject
  - resolvers
    - resolver.go
  - main.go

方式二:修改包名与导入路径

将resolver.go里的包声明改为package resolver,同时把main.go中的导入路径改为github.com/kaleabbyh/foodrecipie/resolver。

2. 导出跨包调用的函数

Go中只有首字母大写的标识符才能被其他包访问,你定义的resolverfunc是小写,main包无法调用,需要改为大写(规范命名建议用ResolverFunc)。

修改后的resolver.go(以方式一为例)

package resolvers

import "fmt"

// 首字母大写,导出函数供其他包调用
func ResolverFunc() {
    fmt.Println("resolvers are running")
}

修改后的main.go(以方式一为例)

package main

import (
    "fmt"
    "github.com/kaleabbyh/foodrecipie/resolvers"
)

func main() {
    resolvers.ResolverFunc()
    fmt.Println("main is running")
}

验证修复

在myproject目录下执行命令:

go run main.go

正常会输出:

resolvers are running
main is running

内容的提问来源于stack exchange,提问作者kaleab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 20:55:05