【问题标题】:malformed module path ... missing dot in first path element格式错误的模块路径...第一个路径元素中缺少点
【发布时间】:2021-08-26 10:53:14
【问题描述】:

我有一个项目,其中包含 2 个不同的可执行文件,每个都有自己的依赖项以及对根目录的共享依赖项,如下所示:

Root
  |->server
  |    |-> main.go
  |    |-> someOtherFiles.go
  |    |-> go.mod
  |    |-> go.sum
  |->validator
  |    |-> main.go
  |    |-> someOtherFiles.go
  |    |-> go.mod
  |    |-> go.sum
  |->utils
  |    |-> someOtherFiles.go
  |->config
  |    |-> someOtherFiles.go
  |-> go.mod
  |-> go.sum

我的root的go.mod是这样的

module prex-kyc

go 1.13

require ({requiredDependencies})

而我的验证器的 go.mod 是这样的(服务器是模拟的)

module validator

go 1.13

require (
    prex-kyc v0.0.0-00010101000000-000000000000
    {otherRequiredDependencies}
)

replace prex-kyc => ../

在验证器和服务器的 main.go 中,我都进行了这样的导入:

import (
    "prex-kyc/utils"
    {someOtherImports}
)

当我尝试构建其中一个项目时,我收到此错误:build validator: cannot load prex-kyc/config: malformed module path "prex-kyc/config": missing dot in first path element

我知道代码没有问题,因为它可以在别人的环境中编译。

我尝试使用 go 版本 1.12 和 1.13 以及 windows 10 和 Debian Linux 进行构建。

【问题讨论】:

  • 没有,我试了几个模块名和如何引用,总是报同样的错误。
  • 您能否确认utils文件夹中没有go.mod文件?由于您没有提到一个,我假设它不存在,但是我对您的问题的模型编译没有错误;但是,如果我将 go.mod 添加到 utils 文件夹中,则会出现相同的错误。
  • 英国人,没错,utils文件夹下没有go.mod文件

标签: go import module path


【解决方案1】:

[已解决]

问题是我正在导入这样的工具:

import("prex-kyc/utils")

但实际上模块 prex-kyc 中没有包 utils,(只有目录 utils)并且该目录中的每个 .go 文件都有不同的包名称。通过将它们中的每一个更改为“package utils”,问题就解决了。

“第一个路径元素中缺少点”的错误确实具有误导性

【讨论】:

    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2016-03-21
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多