当前位置:网站首页>go踩坑——no required module provides package : go.mod file not found in current directory or any parent
go踩坑——no required module provides package : go.mod file not found in current directory or any parent
2022-07-04 23:16:00 【小明的笔记仓库】
背景
准备运行下面代码
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
// 创建一个默认的路由引擎
r := gin.Default()
// GET:请求方式;/hello:请求的路径
// 当客户端以GET方法请求/hello路径时,会执行后面的匿名函数
r.GET("/hello", func(c *gin.Context) {
// c.JSON:返回JSON格式的数据
c.JSON(200, gin.H{
"message": "Hello world!",
})
})
// 启动HTTP服务,默认在0.0.0.0:8080启动服务
r.Run()
}
结果报错:
no required module provides package : go.mod file not found in current directory or any parent directory;
也就是说找不到导入模块的包
尝试1:
go get -u github.com/gin-gonic/gin
没有效果
尝试2:关于golang第三方包的引用报错:no required module provides package_编程哲学家的博客-CSDN博客
网上基本都是这个解决方案:执行:go env -w GO111MODULE=auto
但是我的已经打开了,所以排除这个解决方案。
尝试3:我又重新建了个项目,发现另一个运行时报错结果是:
1.go:4:2: no required module provides package github.com/gin-gonic/gin; to add it:
go get github.com/gin-gonic/gin
注意这两个报错的区别,这个提示了 go get github.com/gin-gonic/gin
说明原项目是缺少东西的,我对比了一下发现原项目代码所在的文件夹中缺少go.mod这个文件
通过研究Go go.mod详解_绛洞花主敏明的博客-CSDN博客_go.mod文件
得到了解决方案
解决方法
在报错的代码文件夹打开终端,运行
go mod init 新模块名字
就可以初始化go.mod,这样再运行
go get -u github.com/gin-gonic/gin
就OK了
总结
- Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。
- Go.mod其实就是一个Modules,关于Modules的官方定义为:Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性。Modules替换旧的基于GOPATH的方法,来指定使用哪些源文件。
- Modules和传统的GOPATH不同,不需要包含例如src,bin这样的子目录,一个源代码目录甚至是空目录都可以作为Modules,只要其中包含有go.mod文件。
边栏推荐
- Jar批量管理小工具
- 蓝天NH55系列笔记本内存读写速度奇慢解决过程记录
- ScriptableObject
- ECCV 2022 | 腾讯优图提出DisCo:拯救小模型在自监督学习中的效果
- The solution to the lack of pcntl extension under MAMP, fatal error: call to undefined function pcntl_ signal()
- Network namespace
- Photoshop batch adds different numbers to different pictures
- cout/cerr/clog的区别
- C language to quickly solve the reverse linked list
- Solve the problem that the virtual machine cannot be remotely connected through SSH service
猜你喜欢
企业里Win10 开启BitLocker锁定磁盘,如何备份系统,当系统出现问题又如何恢复,快速恢复又兼顾系统安全(远程设备篇)
机器人强化学习——Learning Synergies between Pushing and Grasping with Self-supervised DRL (2018)
Qt个人学习总结
ETCD数据库源码分析——处理Entry记录简要流程
Selected cutting-edge technical articles of Bi Ren Academy of science and technology
Mit-6.824-lab4b-2022 (10000 word idea explanation - code construction)
ECCV 2022 | 腾讯优图提出DisCo:拯救小模型在自监督学习中的效果
The difference between cout/cerr/clog
SPH中的粒子初始排列问题(两张图解决)
PMP证书续证流程
随机推荐
Intelligence test to see idioms guess ancient poems wechat applet source code
SPH中的粒子初始排列问题(两张图解决)
[Taichi] change pbf2d (position based fluid simulation) of Taiji to pbf3d with minimal modification
可观测|时序数据降采样在Prometheus实践复盘
【ODX Studio編輯PDX】-0.2-如何對比Compare兩個PDX/ODX文件
[odx Studio Edit pdx] - 0.2 - Comment comparer deux fichiers pdx / odx
Redis:Redis消息的发布与订阅(了解)
ECCV 2022 | Tencent Youtu proposed disco: the effect of saving small models in self supervised learning
Explanation of bitwise operators
数据库基础知识
heatmap. JS picture hotspot heat map plug-in
QT drawing network topology diagram (connecting database, recursive function, infinite drawing, dragging nodes)
Is the account opening link of Huatai Securities with low commission safe?
Compare two vis in LabVIEW
【爬虫】数据提取之xpath
PICT 生成正交测试用例教程
A complete tutorial for getting started with redis: getting to know redis for the first time
js正则表达式之中文验证(转)
HMS core unified scanning service
[binary tree] the maximum difference between a node and its ancestor