为了账号安全,请及时绑定邮箱和手机立即绑定

从基于 GOPATH 的 dep 迁移到 go mod 时,格式错误的模块路径

从基于 GOPATH 的 dep 迁移到 go mod 时,格式错误的模块路径

Go
猛跑小猪 2023-07-31 15:30:15
$ go version1.13.3我的文件夹结构如下:GOPATH+---src     +--- my-api-server           +--- my-auth-server                 +--- main.go           +--- my-utils                 +--- uuid                       +--- uuid.gomy-auth-server用作my-api-server/my-utils/uuid依赖项现在,当我使用基于 GOPATH 的模块系统时,效果很好。但是当使用 go 模块时,当我运行go run main.go它时my-auth-server返回错误:build command-line-arguments: cannot load my-api-server/my-utils/uuid: malformed module path "my-api-server/my-utils/uuid": missing dot in first path element知道如何解决这个问题吗?
查看完整描述

5 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

go.mod文件应位于项目的根目录下(在本例中为my-api-server/go.mod)。

模块路径的第一部分应该是域/路径。例如,完整路径可能是github.com/your-github-username/my-api-server. 您看到的错误是因为第一部分不是域(带有句点)。您不必发布模块来开发它,但您需要使用适当的域名。

一旦有了模块路径,就可以使用完整模块路径+“/”+包的相对路径来导入该模块中包含的包。例如,

import "github.com/your-github-username/my-api-server/my-utils/uuid"

由于main.gouuid包含在同一模块中,因此您不需要requirego.mod文件中声明即可使用该uuid包。您可以像任何其他包一样导入它并且它会起作用。

我建议使用go build并运行生成的可执行文件,而不是使用go run它来确保包含构建过程中所需的所有文件。

查看完整回答
反对 回复 2023-07-31
?
森林海

TA贡献2011条经验 获得超2个赞

检查 main.go 文件上的导入路径。

我必须调用整个导入路径:

github.com/[username]/[project-name]/views

代替:

[project-name]/views

让它在我这边发挥作用。


查看完整回答
反对 回复 2023-07-31
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

如果您尝试使用全局包(非标准),则包名称的第一部分应该有一个点('.')。可能需要点('.'),就像在任何 URL 中一样,在本例中为 github.com...,它将其标记为远程包。

如果你想使用本地包,那么你需要使用 go 模块,那么第一部分将是你的 go 模块的名称(你在初始化 go 模块时使用的名称)。

示例(根据问题):转到项目根文件夹(在本例中../src$)并运行以下命令

go mod init myapiserver

这将创建一个go.modgo.sum文件。

然后要导入uuid,您可以简单地myapiserver/my-utils/uuid在导入中使用

import "myapiserver/my-utils/uuid"

那么所有公共函数(以大写字母开头)都uuid.go可以在当前文件中访问


查看完整回答
反对 回复 2023-07-31
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

升级go版本到最新或1.16.1以上。

go version >=1.16.1 (required)

对于苹果机 -

brew update
brew upgrade golang

对于 linux - 删除现有的 go,然后安装最新的。

这对我有用。


查看完整回答
反对 回复 2023-07-31
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

非常不寻常的情况,但我正在使用不正确/过时的符号链接main.go。将其链接到正确的文件修复了该错误。



查看完整回答
反对 回复 2023-07-31
  • 5 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信