gpt4 book ai didi

go - 无法将本地包调用到 main

转载 作者:数据小太阳 更新时间:2023-10-29 03:08:55 28 4
gpt4 key购买 nike

我觉得这可能是一个关于 SO 的问题,但又出现了。我发现这个简单的任务在 Go 中非常乏味。请注意,我将 GO11MODULES 设置为 ON,我不确定这是否会影响整个包系统(这不应该是我所假设的)。

我有一个名为“users”的包,其中包含一个已编译的 Protocol Buffer(来自 .proto 文件)。我想将它与许多其他定义一起存储在名为 protos 的文件夹中。所以我的结构看起来像这样:

- main.go
- protos
- users.go
- users.proto
- analytics.go
- analytics.proto

非常简单的结构。在 users.go 文件中,我定义了 package protos。在 main.go 中,我想导入用户“protos/users”。当我这样做时,我得到这个:build command-line-arguments: cannot load protos/users: cannot find module providing package protos/users

我已经遵循(我认为)完成同样事情的其他示例代码。请注意,文件夹结构位于 $GOPATH/src/myapi 中。

为什么这比事实证明的更复杂?

最佳答案

如果您使用的是package protos,那么包就是protosprotos/users 不存在。包和包导入是目录级的,而不是文件级的。完整的导入语句取决于 go.mod 文件中的 module 声明,它定义了导入的根。例如,如果您的 go.mod 以

开头
module github.com/me/myapp

那么你的导入将是

import "github.com/me/myapp/protos"

关于go - 无法将本地包调用到 main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55858592/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com