首页 > 解决方案 > 无法导入包

问题描述

我正在尝试将我的项目中的子目录导入到我的主文件中,但由于某种原因,我收到了这个错误:

could not import ./service (no package for import ./service)

这就是我导入的方式:

import (
"os"

"service"

)

我也试过"service/app"

"./service/app"

"./service"没有任何效果,总是同样的错误。

我正在尝试使用 app.go 文件这是文件结构:

Project Directory
        -- main.go
        -- service (directory)
           -- app.go (file)

我尝试重新启动 VS Code,尝试使用 go install/update 工具,但没有任何效果。另外,这是我的主要功能:

func main() {
  a := &service.App()
  a.Initialize(
    os.Getenv("APP_DB_USERNAME"),
    os.Getenv("APP_DB_PASSWORD"),
    os.Getenv("APP_DB_NAME"),
  )

  a.Run(":8010")
}

&service.App()没有显示问题,但是当我删除“ service”导入时,它确实说

undeclared name: service

所以我不明白问题是什么。这个错误有时也会显示在“os”导入上,我不知道为什么。

标签: go

解决方案


Golang不支持相对导入

在模块中,最后有一个子目录的名称。如果父目录显示“module m”,则子目录将导入为“m/subdir”,而不是“./subdir”。

因此,在您的情况下,您应该将service包导入为your_module_name/service.


推荐阅读