Golang:没有必需的模块提供包

zyr*_*ros 6 go

我使用 main.go 和以下代码创建了一个新文件夹:

package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "pong",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
Run Code Online (Sandbox Code Playgroud)

我跑go mod init gin,然后go mod tidy

go.mod 和 go.sum 已创建,它们看起来不错。

我运行go run main.go并得到这个输出

main.go:6:2: no required module provides package github.com/gin-gonic/gin; to add it:
        go get github.com/gin-gonic/gin
Run Code Online (Sandbox Code Playgroud)

go get github.com/gin-gonic/gin没有解决问题

看起来 main.go 没有使用当前目录中的 go.mod 。我尝试设置 GO111MODULE="auto" 和 GO111MODULE="on" 但没有成功。

我的环境:

GO111MODULE="auto"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/xxx/.cache/go-build"
GOENV="/home/xxx/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/xxx/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/xxx/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18.3"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/xxx/files/Programming/go-playground/gin/go.mod"
GOWORK="/home/xxx/files/Programming/go-playground/go.work"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3669122409=/tmp/go-build -gno-record-gcc-switches"
Run Code Online (Sandbox Code Playgroud)

解决了:

我的代码示例位于 go 工作区中,我忘记将其添加到工作区中go work use

小智 5

我可以通过以下步骤启动 http 服务

\n

目录结构

\n
./Playground/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 go.mod\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 go.sum\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.go\n
Run Code Online (Sandbox Code Playgroud)\n

Step.1 模块初始化

\n
go mod init gin \ngo mod tidy\n
Run Code Online (Sandbox Code Playgroud)\n

Step.2 添加gin依赖

\n
go get github.com/gin-gonic/gin\n
Run Code Online (Sandbox Code Playgroud)\n

Step.3 创建main.go,使用有问题的代码

\n

Step.4 运行

\n
go run ./main.go\n
Run Code Online (Sandbox Code Playgroud)\n