新手运行项目遇到问题

2022-09-22 22:06:13 +08:00
 qiandongdong

没有了解过 go ,今天需要运行一个 go 的程序,按照这个教程 https://www.bt.cn/bbs/thread-17882-1-1.html 部署了环境一切正常,但是运行:go run main.go 的时候,出现如下的问题: main.go:23:2: no required module provides package github.com/shirou/gopsutil/cpu: go.mod file not found in current directory or any parent directory; see 'go help modules' main.go:24:2: no required module provides package github.com/shirou/gopsutil/mem: go.mod file not found in current directory or any parent directory; see 'go help modules' main.go:25:2: no required module provides package github.com/shirou/gopsutil/net: go.mod file not found in current directory or any parent directory; see 'go help modules'

输入:go help modules 后提示如下 Modules are how Go manages dependencies.

A module is a collection of packages that are released, versioned, and distributed together. Modules may be downloaded directly from version control repositories or from module proxy servers.

For a series of tutorials on modules, see https://golang.org/doc/tutorial/create-module.

For a detailed reference on modules, see https://golang.org/ref/mod.

By default, the go command may download modules from https://proxy.golang.org. It may authenticate modules using the checksum database at https://sum.golang.org. Both services are operated by the Go team at Google. The privacy policies for these services are available at https://proxy.golang.org/privacy and https://sum.golang.org/privacy, respectively.

The go command's download behavior may be configured using GOPROXY, GOSUMDB, GOPRIVATE, and other environment variables. See 'go help environment' and https://golang.org/ref/mod#private-module-privacy for more information.

希望大伙可以帮一下我,谢谢。

2461 次点击
所在节点    Go 编程语言
12 条回复
ginakira
2022-09-22 22:09:50 +08:00
可以先学一下提问的正确姿势
janxin
2022-09-22 22:54:45 +08:00
这个版本的教程太老了,你需要找一个新的版本的。
Aloento
2022-09-23 01:48:55 +08:00
这辈子第一次看见真正的天书
placeholder
2022-09-23 02:01:06 +08:00
全都是说没依赖,那你就下依赖呗,

程序是啥也不说,程序在哪儿能看也不说,这谁知道啊。

再说 go 编译好了不是 exe 或者是啥的吗,打开就运行了啊,你这咋还 go run 上了,

拿别人代码想跑没跑起来?代码呢
seers
2022-09-23 08:36:22 +08:00
go mod tidy 一下,会自动下载依赖
allanpk716
2022-09-23 09:42:12 +08:00
1. 需要先弄清楚两个路径 go root go path 的概念
2. 需要弄清楚 go 项目推荐放到那个目录中
3. go 1.16 后,go mod 的作用是什么,怎么添加和还原支持库
4. 建议使用 IDE ,比如 Goland 或者 VSCode ,下载对应的插件可以解决很多时间和不必要的问题
Joeyscat
2022-09-23 09:56:07 +08:00
keepeye
2022-09-23 10:16:52 +08:00
过时的文章,你应该看官方的启动教程

https://go.dev/doc/tutorial/getting-started
qiandongdong
2022-09-23 13:29:41 +08:00
@seers go mod tidy 显示 go: go.mod file not found in current directory or any parent directory; see 'go help modules' 可以在具体一点吗
twistedmeadows
2022-09-23 13:50:19 +08:00
首先你给出的文章是部署环境的文章(我们先不说它已经过时了),给出的问题是运行程序的问题,这两个不是一个事(虽然给你的感受可能是环境没部署好)。that's why 每个初学者都应该先写个 hello world ,你写个 hello world 来跑跑就会知道环境部署好没有。

如果给定一个环境已经部署好的条件,再看你的报错,它是找不到依赖库报的错。而你的依赖管理方式是哪一种?(楼上的建议都是基于你用 go mod 管理依赖的情况,但实际你用的代码库可能不是)你得把你用的代码仓库提供给大家才能帮你看,否则从我的角度来看,就是单纯的,这个仓库本身就不完整,跟环境无关。
twistedmeadows
2022-09-23 14:08:32 +08:00
当然如果你安装的是较新版本的 go (我理解至少得 1.13 以上),实际上解法可能是很简单的:

用这两条命令设置一下下载依赖时通过代理:
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

用这个命令初始化一下仓库的 mod (它会创建你缺失的 go.mod )
go mod init XXXXXX
注意替换这个 XXXXX 为你使用的项目代码自身的名字或开源地址

然后用这个命令自动整理依赖关系并下载代码内的依赖:
go mod tidy

然后 go run .
dongtingyue
2022-09-23 16:17:40 +08:00
go build 也会自动下载包

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/882249

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX