如何将包从子目录导入到子目录中的包中?

时间:2019-07-15 19:28:39

标签: go import package

我具有以下文件结构。

jinja2.exceptions.TemplateSyntaxError

配置和命令包都在内部目录内。通过键入commands.Command(),导入就像一个超级按钮一样工作。当我尝试在命令包中键入config.InitializeConfiguration()时,出现以下错误。

未定义:配置

由于某种原因,该软件包也没有自动导入commands.go文件顶部。 go包只能导入到主包中吗?

我尝试了以下方法:

手动输入以下导入内容:

/myProject |-main.go |-/internal |-/config |-/commands

我还尝试过手动键入以下内容,希望golang会自动创建导入。

"myProject/internal/config"

我确实阅读了一些文章和文档,但是他们没有说您是否可以导入另一个内部软件包内部的软件包。

我也阅读了How to properly import a package from sub-directory in Golang?上的解决方案,但没有提供答案的解决方案。

commands.go

`     打包命令

config.InitializeConfiguration()

`

我希望程序包能够正确导入,但事实并非如此。相反,我收到错误消息import ( "log" "os" "github.com/urfave/cli" ) var datamodels string = "" var output string = "" func Command() { app := cli.NewApp() app.Name = "goql" app.Usage = "Generates GraphQL schema automatically." app.Flags = []cli.Flag{ cli.StringFlag{ Name: "datamodels, d", Usage: "Loads datamodels from specified `.graphql files.`", Destination: &datamodels, }, cli.StringFlag{ Name: "output, o", Usage: "Directory to save GraphQL schema generated.", Destination: &output, }, } app.Commands = []cli.Command{ { Name: "generate", Aliases: []string{"g"}, Usage: "Generates the GraphQL schema.", Action: func(c *cli.Context) error { if datamodels == "" { log.Fatal("Missing flag: datamodels. Please provide a single .graphql file or a comma separated list of .graphql files.") } if output == "" { log.Fatal("Missing flag: output. Plase provide a sigle directory name.") } config.InitializeConfiguration(datamodels, output) return nil }, }, } err := app.Run(os.Args) if err != nil { log.Fatal(err) } }

0 个答案:

没有答案