登录
首页 >  Golang >  Go问答

Golang:包不存在强制性的模块

来源:stackoverflow

时间:2024-02-24 19:42:28 114浏览 收藏

大家好,今天本人给大家带来文章《Golang:包不存在强制性的模块》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

我使用 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")
}

我运行 go mod init gingo 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

go 获取 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"

已解决:

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


正确答案


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

目录结构

./playground/
├── go.mod
├── go.sum
└── main.go

step.1模块初始化

go mod init gin 
go mod tidy

step.2 添加 gin 依赖

go get github.com/gin-gonic/gin

step.3 使用问题中给出的代码创建 main.go

步骤4运行

go run ./main.go

好了,本文到此结束,带大家了解了《Golang:包不存在强制性的模块》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>