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

找不到golang编译简单的应用程序模块(GOPATH?)

找不到golang编译简单的应用程序模块(GOPATH?)

Go
沧海一幻觉 2022-07-11 15:37:32
刚开始使用 go,当我尝试编译 hello.go 时,卡在了一个非常简单的应用程序上(从这里https://golang.org/doc/tutorial/call-module-code ):...hello.go:6:5: cannot find module providing package example.com/greeting...环境是这样设置的(Ubuntu 20.04)root@591c0587972e:~/proj/test/go.test# go env | grep GOPAGOPATH="/root/go:/root/proj/test/go.test"root@591c0587972e:~/proj/test/go.test# go versiongo version go1.15.3 linux/amd64源代码https://github.com/myxit/golang-wtf请帮忙,设置有什么问题?
查看完整描述

1 回答

?
jeck猫

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

您需要使用replace指令指向包的本地路径。否则,Go 会尝试在实际路径所在的位置找到它 - 在example.com/greeting. 在您链接到的页面中,提到了这一点:


对于生产用途,您可以在公司内部或互联网上的服务器上发布您的模块,Go 命令将从那里下载它们。现在,您需要调整调用者的模块,以便它可以在您的本地文件系统上找到问候代码。


为此,请对 hello 模块的 go.mod 文件进行一些小改动。


在 hello 目录中,打开 go.mod 文件,将其更改为如下所示,然后保存文件。


module hello


go 1.14


replace example.com/greetings => ../greetings

事实上,由于您使用的是模块(就像您应该使用 go 1.15 一样!)我建议您根本不要设置. 它不是必需的,只是在“模块模式”中增加了混乱。


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

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