golang vscode环境报错gopls was not able to find modules in your workspace的解决方式

news2024/9/27 23:33:52

 

目录

错误提示

分析

解决方式

方法一:将workspace与项目路径保持一致

方案二:使用go work指明纳入工作区的的module

总结


错误提示

golang从老版本升级到go1.20.5后打开vscode,发现代码不能自动补全了,而且vscode跳出一下的错误提示

gopls was not able to find modules in your workspace.

When outside of GOPATH, gopls needs to know which modules you are working on.

You can fix this by opening your workspace to a folder inside a Go module, or

by using a go.work file to specify multiple modules.

See the documentation for more information on setting up your workspace

分析

上述的错误提示已经很简明了,golang是从v1.11引入了go mod机制,为了完善go mod机制,又从v1.18引入了多模块工作区机制(要把哪些mod纳入到你的工作区内),即go work机制,从之前的版本升级到v1.18及之后,你的vscode工作环境可能会报错。

我的vscode打开的文件夹的路径默认作为了其工作区(workspace),而这个工作区的根目录要有go.mod文件,如果根目录没有这个go.mod就要指定哪些子目录的go mod纳入工作区,说起来比较绕:总结下面几条:

  • 一般是项目的根目录作为了工作区,如果是项目的父目录或者子目录作为了工作区,则需要go work命令指明哪些mod纳入自己的工作区
  • workspace的根目录下要有go.mod,如果没有go.mod,可以生成一个,如果不想在workspace下生成,就需要用go work命令指明workspace下的哪些mod需要纳入工作区

 解决之前:

解决方式

方法一:将workspace与项目路径保持一致

vscode重新打开目录,直接打开项目文件夹,将项目路径作为工作区,vscode直接打开项目路径,由于我的项目路径根目录下已经有了go.mod

gopls不会报错

vscode打开如图:

方案二:使用go work指明纳入工作区的的module

我是将项目目录的父目录作为工作区,用go work命令将需要的module纳入工作区,操作如图

 vscode打开如图:

总结

这个小问题的解决主要是理解workspace概念,一个workspace可以包含了多个module,好的习惯就是workspace与自己的项目路径一致,且自己的项目根目录下有go.mod

如果workspace与项目路径不一致,则需要用go work将module纳入自己的workspace中,go work的路径是workspace的相对路径

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/656882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dolphinscheduler创建创建租户错误

报错信息 [ERROR] 2023-06-17 17:04:10.282 org.apache.dolphinscheduler.api.exceptions.ApiExceptionHandler:[45] - 创建租户错误 org.apache.hadoop.security.AccessControlException: Permission denied: userhdfs, accessWRITE, inode"/":root:supergroup:drw…

搭建自己的 new bing网站----nginx反代(群晖,全docker版)

文章目录 1.前言:2. 部署过程:2.1.部署go-proxy-bing 项目:2.1.部署nginx反代:这两步完成实际上就可以访问了, 3.部署聊天服务器:代表链接成功! 1.前言: 本篇教程全萌新向&#xff…

Qt for Android 调试遇到问题总结

一、首次编译Downloading “Gradle” 无法下载导致编译无法完成问题 解决办法: 1、通过地址:https://services.gradle.org/distributions/gradle-5.5.1-bin.zip单独下载 2、再将下载的gradle-5.5.1-bin.zip放到“C:\Users\hp\.gradle\wrapper\dists\gr…

软件工程导论期末急救包(上)

目录 什么是软件工程?它的目标和内容是什么? 软件文档作用及包含 软件过程模型 瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型 软件生存周期 需求分析阶段的基本任务是什么? 可行性研究的任务是什么? 软件是什…

MySQL——MySQL的图形化界面工具安装与使用

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 写在前面: 一.DataGrip安装使用 1). 找到下载准备好的安装包&am…

2023 最新 1200 道 JAVA 面试题,囊括面试所有硬核技能

Java 面试八股文有必要背吗? 我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。现如今,Java 面试的本质就是八股文,把八股文面试题背好,面试才有可能表现好。…

power gating/power switch/level shift/IR-drop

目录 1.power gating 2.level shift 3.IR-drop 1.power gating power gating 的设计重点如下: 1)Power Switch的设计; 2)Power Gating controller的设计; 3)retention register和isolation cell的选择及插入; 4)Power Gati…

【Pandas】pandas用法解析(一)

目录 一、生成数据表 1.导入pandas库 2.导入CSV或者xlsx文件 3.用pandas创建数据表 二、数据表信息查看 1.维度查看 2.数据表基本信息(维度、列名称、数据格式、所占空间等) 3.每一列数据的格式 4.某一列格式 5.空值判断 6.查看某一列空值 7…

使用torch的自动微分实现自定义函数优化

前言 目的是利用torch已经有的自动微分机制,进行参数迭代更新,就不用自己写代码算了。 文章目录 前言1. 待优化函数1.1 解释 2. 代码3. 结果 1. 待优化函数 y 10 ( x 1 x 2 − 5 ) 2 ( x 1 − x 2 ) 2 y10\times(x_1x_2-5)^2(x_1-x_2)^2 y10(x1​x…

oracle中如何修改日期类型的字段值

系列文章目录 文章目录 系列文章目录前言一、数据库表方式进行修改二、sql方式步骤总结 前言 Oracle是一家全球领先的数据库管理系统(DBMS)和企业软件公司。Oracle Corporation成立于1977年,总部位于美国加利福尼亚州的红木城(Re…

SpringBoot整合篇

SpringBoot整合第三方技术 1、整合缓存 何为缓存? 缓存是一种介于数据永久存储介质与数据应用之间的数据临时存储介质使用缓存可以有效的减少低速数据读取过程的次数(例如磁盘IO),提高系统性能缓存不仅可以用于提高永久性存储介…

腾讯云最新社招面经出炉(面试原题+答案解析)

前言 大家好,今天给大家分享一篇腾讯云的面经,以下是面试题和答案。加油,一起卷。 聊聊项目,好的设计,好的代码 谈谈什么是零拷贝? 一共有几种 IO 模型?NIO 和多路复用的区别? F…

Get请求参数过多导致请求失败

1. 问题 系统正常使用没有问题,但是有极个别的用户出现系统异常,通过日志发现某个get请求,传入的城市list太多,就会抛出异常 java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map。 2. 排查过程 …

Elasticsearch 安装(Linux)

ElasticSearch 概念安装安装es 后台启动 & 停止启动nohup 记录pid 停止 其他启动错误max number of threads内存不足 Cannot allocate memoryfailed to obtain node locks 概念 ES是一款分布式全文搜索引擎,基于Lucene,进行了二次封装,更…

ElasticSearch笔记02-ElasticSearch入门

ElasticSearch安装 下载软件 ElasticSearch的官网,视频教程里用的Version是7.8.0,所以,我们也是用7.8.0版本的ElasticSearch。 下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch,然后搜索…

车载诊断协议 —— 诊断服务Service 11

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 在最艰难的时候,自己就别去幻想太远的将来,只要鼓励自己过好今天就行了! 这世间有太多的猝不及防,有些东西根本不配占有自己的情绪,人生就是一场体验,…

一种栅格数据的空间聚类方法(ACA-Cluster)

本文结合实例详细讲解了如何使用Python对栅格数据进行空间聚类,关注公众号GeodataAnalysis,回复20230616获取示例数据和代码,包含整体的写作思路,上手运行一下代码更容易弄懂。 带有非空间属性的空间数据聚类分析是空间聚类研究的…

English Learning - L3 作业打卡 Lesson6 Day43 2023.6.16 周五

English Learning - L3 作业打卡 Lesson6 Day43 2023.6.16 周五 引言🍉句1: Thousands of lanterns slowly drift out to sea guiding the dead on their return journey to the other world.成分划分弱读连读爆破语调 🍉句2: This is a moving spectacl…

炎炎夏日!东南亚LazadaShopee泳衣品类热销榜单来袭

6月商机无限,趁热打铁!3大节庆即将来袭。小编特为卖家整理了6月最强爆单选品指南,揭秘东南亚泳衣市场。赶紧一睹为快吧! 炎炎夏日,马上即将迎来暑假,海边游玩肯定成了小朋友即家长们的首选之地&#xff0c…

js将json字符串转换为json对象的方法解析

将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。 例如: JSON字符串: var str1 ‘{ “n…