【问题标题】:Can't import a Go module无法导入 Go 模块
【发布时间】:2021-09-27 14:25:07
【问题描述】:

我正在学习 Go 广告我正在尝试构建 go 文件:

package main

import (
    "github.com/go-chi/chi/v5"
    "github.com/go-chi/chi/v5/middleware"
    "net/http"
)

func main() {
    r := chi.NewRouter()
    r.Use(middleware.Logger)
    r.Get("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("welcome"))
    })
    http.ListenAndServe(":3000", r)
}

但是当我使用命令go build main.go 构建程序时,它会输出:

go: github.com/go-chi/chi/@v1.5.4: missing go.sum entry; to add it:
        go mod download github.com/go-chi/chi/

go.mod:

module exprog

go 1.16

require github.com/go-chi/chi/ v1.5.4

当我执行go mod download github.com/go-chi/chi/ 时,我得到这个错误:

go: github.com/go-chi/chi/@v1.5.4: malformed module path "github.com/go-chi/chi/": trailing slash

我该怎么办?

【问题讨论】:

  • 不要尝试构建单独的 go 文件,构建包。我不确定您是如何获得go mod download github.com/go-chi/chi/,但您应该使用go get github.com/go-chi/chi/v5
  • 我试过了,不行
  • 你到底尝试了什么?请创建一个minimal reproducible example,因为单个go source you have不会产生这个错误。

标签: go gopath go-chi


【解决方案1】:

不是命令错误,是 go.mod 文件错误。您可以通过以下方式修复:

module exprog

go 1.16

require github.com/go-chi/chi/v5 v5

【讨论】:

    【解决方案2】:

    假设您要下载此module,您应该下载go mod download github.com/go-chi/chi/v5。模块的名称是依赖项的 go.mod 文件中的头文件。

    您可以从 go.mod 中删除该条目,只需执行 go mod download github.com/go-chi/chi/v5

    您可以从 go.mod 中删除该条目,然后执行go mod tidy。 Go 将根据您的导入填充您的 go.mod 文件。那你就可以go mod download了。

    【讨论】:

    • 如果你初始化了一个模块with go mod init ....,Go会自动为你运行go mod tidy
    • 前面的评论增加了答案,但没有解释否决票。
    猜你喜欢
    • 2020-07-06
    • 1970-01-01
    • 2012-11-06
    • 2017-11-11
    • 2021-07-27
    • 2019-06-13
    • 2020-12-15
    • 2020-08-28
    相关资源
    最近更新 更多