V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
qiandongdong
V2EX  ›  Go 编程语言

新手运行项目遇到问题

  •  
  •   qiandongdong · 10 天前 · 1447 次点击

    没有了解过 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.

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

    12 条回复    2022-09-23 16:17:40 +08:00
    ginakira
        1
    ginakira  
       10 天前
    可以先学一下提问的正确姿势
    janxin
        2
    janxin  
       10 天前
    这个版本的教程太老了,你需要找一个新的版本的。
    Aloento
        3
    Aloento  
       10 天前   ❤️ 2
    这辈子第一次看见真正的天书
    placeholder
        4
    placeholder  
       10 天前   ❤️ 1
    全都是说没依赖,那你就下依赖呗,

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

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

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

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

    如果给定一个环境已经部署好的条件,再看你的报错,它是找不到依赖库报的错。而你的依赖管理方式是哪一种?(楼上的建议都是基于你用 go mod 管理依赖的情况,但实际你用的代码库可能不是)你得把你用的代码仓库提供给大家才能帮你看,否则从我的角度来看,就是单纯的,这个仓库本身就不完整,跟环境无关。
    twistedmeadows
        11
    twistedmeadows  
       9 天前
    当然如果你安装的是较新版本的 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
        12
    dongtingyue  
       9 天前
    go build 也会自动下载包
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1883 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 05:45 · PVG 13:45 · LAX 22:45 · JFK 01:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.