VSCode:无法导入 Golang 包

2024-02-03

我正在 GoPath 中编写一个 Go 项目,并使用 Redigo 包连接到 Redis 服务器。应用程序运行良好,但是在 VSCode 中,包导入时出现这个烦人的错误,这导致 VSCode 无法提供智能感知建议

无法导入 github.com/gomodule/redigo/redis (导入路径 github.com/gomodule/redigo/redis 没有包数据)

这是我的 VSCode settings.json

{
    "editor.fontSize": 14,
    "editor.formatOnPaste": true,
    "editor.multiCursorModifier": "ctrlCmd",
    "editor.snippetSuggestions": "top",
    "extensions.ignoreRecommendations": false,
    "workbench.statusBar.visible": true,
    "workbench.iconTheme": "vscode-great-icons",
    "files.autoSave": "afterDelay",
    "go.useLanguageServer": true,
    "go.alternateTools": {
        "go-langserver": "bingo"
    },
    "go.toolsEnvVars": {
        "GO111MODULE": "on"
    },
    "go.languageServerExperimentalFeatures": {
        "autoComplete": true,
        "documentSymbols": true,
        "findReferences": true,
        "format": true,
        "goToDefinition": true,
        "goToTypeDefinition": true,
        "hover": true,
        "signatureHelp": true,
        "rename": true,
        "workspaceSymbols": true,
    },
    "go.lintTool": "golangci-lint",
    "go.lintFlags": [
        "--fast",
        "-E", "goimports",
        "-E", "gocritic",
        "-E", "gocyclo",
        "-E", "gosec",
        "-E", "maligned",
        "-E", "scopelint",
        "-E", "interfacer",
        "-E", "goconst",
        "-E", "unconvert",
        "-E", "unparam",
        "-E", "prealloc",
        "-E", "varcheck",
    ],
    "go.formatTool": "goimports",
    "editor.minimap.enabled": false,
    "breadcrumbs.enabled": false,
    "git.autofetch": true,
    "workbench.startupEditor": "newUntitledFile",
    "explorer.confirmDelete": false,
    "git.enableSmartCommit": true,
    "git.confirmSync": false,
    "window.zoomLevel": 0,
    "explorer.confirmDragAndDrop": false
}

我已经将 GO111MODULE 环境变量设置为 on,这是输出go env

set GOARCH=amd64
set GOBIN=C:\Users\Francesco\Go\bin
set GOCACHE=C:\Users\Francesco\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\Francesco\Go
set GOPROXY=
set GORACE=
set GOROOT=c:\go
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=C:\Users\Francesco\Go\src\test\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\FRANCE~1\AppData\Local\Temp\go-build928398422=/tmp/go-build -gno-record-gcc-switches

我应该改变什么才能使这项工作正常进行?


在一些特定情况下,这种情况会发生在我身上。这是我的故障排除过程:

  1. 你跑了吗go get github.com/gomodule/redigo/redis?

  2. 有时,当我在与项目不同的根目录中打开编辑器时,我会遇到类似的问题。 (另请检查答案末尾的更新)

.  <- editor open here
| 
|_Folder
  | main.go
  | go.mod
  | go.sum
  1. 确保您的工具是最新的:运行ctrl + shift + p, type Go并选择了Install/Update tools.

  2. 尝试将您的项目移出 GOPATH,并为其设置 go.mod。

  3. 重新启动编辑器

针对问题“2”的更新:

Go 1.18 有一个新功能 https://github.com/golang/tools/blob/master/gopls/doc/workspace.md#go-workspaces-go-118称为工作区! 如果您在与 go mod 文件所在的根目录不同的根目录中打开工作区,则可能是因为同一文件夹中有多个项目。如果是这种情况,您可以运行:

go work init
go work use ./path-to-module  ./path-to-module2

它看起来像什么:

.  <- editor open here
| go.work
| app (folder)
  | go.mod
  | go.sum
  | main.go
| client (folder)
  | go.mod
  | go.sum
  | main.go
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VSCode:无法导入 Golang 包 的相关文章

  • 如何在 Visual Studio Code 中缩进/格式化所选代码?

    我想缩进 Visual Studio Code 中的特定代码部分 I read 如何在 Visual Studio Code 中设置代码格式 https stackoverflow com questions 29973357 它提供了缩进
  • 无法打开 TypeScript 项目的扩展开发主机

    我正在尝试阅读第一个 VS Code 扩展教程 但无法打开扩展开发主机 按 F5 没有任何反应 单击调试侧栏中的开始按钮似乎也没有执行任何操作 我已经使用生成了我的项目yo code并选择了 TypeScript 选项 我尝试过选择 Jav
  • 无法使用 Unity 函数在 Visual Studio Code 中获得完整的 Intellisense

    好吧 我知道这个问题已经被问过并回答过很多次了 但我花了大约 3 天的时间试图解决这个问题 但到目前为止我所做的一切都没有奏效 我基本上在 Visual Studio Code 中有部分智能感知 也就是说 它似乎只识别 Unity 类和变量
  • vscode通过SSH连接gitlab的问题

    我在尝试通过 SSH 连接到 GitLab 远程存储库时遇到问题 这里是迄今为止完成的步骤 成功生成 SSH 密钥 管理人员将密钥添加到存储库中 因此当我访问 GitLab 网站时 我可以提交和发布分支 我无法从 VSCODE 发布分支并收
  • 编写 VS Code 扩展时如何聚焦自定义视图?

    我需要有关 VS Code 扩展的帮助 我已经编写了一个工作正常的自定义视图 但是我想通过使用键盘快捷键或上下文菜单命令来激活 聚焦 进入该视图 我无法找到如何使用 VS code API 来实现这一点 context subscripti
  • 匿名结构和空结构

    http play golang org p vhaKi5uVmm http play golang org p vhaKi5uVmm package main import fmt var battle make chan string
  • 如何在 VSCode 中创建自定义对话框?

    我正在开发 VSCode 的扩展 我想显示一个自定义对话框来帮助用户配置 ini 文件 是否可以创建带有标签和输入的自定义对话框 您无法创建新的 UI 元素 但如果您想从用户那里获取输入 您可以使用如下代码 let options Inpu
  • 解组转义 XML

    在 Go 中 我将如何解码此 XML 响应 我尝试过建立一个自定义UnMarshal方法在我的Answerstruct 但我运气不太好
  • 为什么 Go 禁止取 (&) 映射成员的地址,却允许取 (&) 切片元素?

    Go 不允许获取地图成员的地址 if I do this p mm abc Syntax Error cannot take the address of mm abc 理由是 如果 Go 允许使用此地址 那么当地图后台存储增长或缩小时 该
  • 如何防止 Visual Studio Code Flutter/Dart 编辑器格式化新行/换行代码?

    我最近开始研究 Flutter Dart 我喜欢保存时自动格式化 Flutter 但有一件事可能相关也可能不相关 那就是长代码的代码包装 即使代码仍然适合我的 4k 编辑器窗口 有没有办法防止换行但保持逗号自动格式 Thanks 请按照以下
  • GoLang ssh:尽管将其设置为 nil,但仍出现“必须指定 HosKeyCallback”错误

    我正在尝试使用 GoLang 连接到远程服务器 在客户端配置中 除了用户和密码之外 我将 HostKeyCallback 设置为 nil 以便它接受每个主机 config ssh ClientConfig User user HostKey
  • 在 Go 中初始化嵌入结构

    我有以下内容struct其中包含一个net http Request type MyRequest struct http Request PathParams map string string 现在我想初始化匿名内部结构http Req
  • GOMAXPROCS 默认值是多少?

    不设置同名环境变量时是否保证GOMAXPROCS设置为1 此代码显示的值 package main import runtime fmt func getGOMAXPROCS int return runtime GOMAXPROCS 0
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 如何将 Unicode 字符转换为简单形式? [复制]

    这个问题在这里已经有答案了 有没有一个Go库可以Sj str m作为输入和返回Sjostrom作为输出 您可以使用golang org x text unicode norm来处理这个问题 package main import fmt i
  • 复杂数据类型作为 Go 中映射的键

    我正在尝试在 Go 中创建一个由大整数作为键的映射 effective Go 明确指出 结构体 数组和切片不能用作映射键 因为这些类型上没有定义相等性 这是有道理的 我当然可以将大整数转换为字符串并使用字符串作为键 但我在这里寻找更通用的解
  • 有队列实现吗?

    任何人都可以建议使用 Go 容器来实现简单快速的 FIF 队列 Go 有 3 种不同的容器 heap list and vector 哪一种更适合实现队列 事实上 如果您想要的是一个基本且易于使用的 fifo 队列 slice 可以满足您所
  • 如何在golang中创建一个充满“000000...”数据的10MB文件?

    我打算在日志或磁盘队列等系统中使用 fdatasync 首先是在 ext4 等文件系统中创建一个带有 000000 的 10MB 文件 但我不知道如何正确地做到这一点 jnml fsc r630 src tmp SO 16797380 ls
  • Golang 正则表达式在字符串之间替换

    我有一些可能采用以下形式的字符串 MYSTRING MYSTRING n MYSTRING n MYSTRING randomstringwithvariablelength n 我希望能够将其正则表达式为MYSTRING foo 基本上替
  • 直接从一个通道发送到另一个通道

    当从一个通道直接发送到另一个通道时 我偶然发现了令人惊讶的行为 package main import fmt func main my chan make chan string chan of chans make chan chan

随机推荐

  • 从给定的 n 个点中选择最远的 k 个点

    我有一套Sn维度中的点d如果需要的话 我可以计算所有成对距离 我需要选择k该集合中的点 使得它们的成对距离之和最大 换句话说 我想要 S 中的 p1 pk 使得 sum i j 我知道这个问题与this one https stackove
  • 从Java中的IAM用户名获取Amazon访问密钥和秘密密钥

    我碰到从 Java 中的 Amazon Access Key 获取用户名 https stackoverflow com questions 13595541 get username from amazon access key in j
  • 检查 PyObject 是否为 None

    我只是想检查一下是否PyObject我有的是None 我天真地以为任何None Pyobject 从函数返回的将是 NULL 指针 但情况似乎并非如此 那么 我如何检查是否PyObject 我的指向一个None object 我知道有类似的
  • 如何在 R 中抓取网页而不出现空网站问题?

    我需要提取有关物种的信息 并编写以下代码 然而 我对一些缺失的物种有疑问 如何才能避免这个问题呢 Q lt c rvest stringr tidyverse jsonlite lapply Q require character only
  • 在 Ubuntu 上通过 pyODBC 连接到 Microsoft SQL Server

    连接到 Microsoft SQL Server 实例时遇到问题pyODBC在一个Ubuntu 12 10 机器 我返回的错误是 pyodbc Error IM002 IM002 unixODBC Driver Manager Data S
  • Winforms DataBind 到控件的 Visible 属性

    将数据绑定到控件的可见属性时是否存在任何已知问题 无论我的属性是什么 该控件始终不可见 Public ReadOnly Property IsRibbonCategory As Boolean Get Return True End Get
  • 从 Azure DevOps 导出测试结果

    我可能遗漏了一些东西 但找不到从 Azure DevOps 中项目的构建管道执行页面导出测试运行结果的方法 有一个 下载日志 当然 从技术上讲 您可以在其中找到来自测试执行步骤的日志以及其他内容 但这似乎不是定期获取此类数据以进行法规 审计
  • 如何使用头文件签名(幻数)检查文件类型?

    通过输入文件及其扩展名 我的代码成功地从 幻数 中检测到文件的类型 magic numbers png bytes 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A jpg bytes 0xFF 0xD8 0x
  • Laravel 5.4 - php artisan 缓存:使用“文件”缓存驱动程序时清除不会清除缓存文件

    Laravel 5 4 应用程序 CACHE DRIVER被设定为file and QUEUE DRIVER被设定为sync in env 当我跑步时php artisan cache clear它说Cache cleared succes
  • 每个 UDP 数据报的 Netty 不同管道

    我们有一个已经在 TCP IP 中实现的服务器 但现在我们要求该协议也支持 UDP 发送的每个 UDP 数据报都包含我需要解码的所有内容 因此这是一个非常简单的回复和响应系统 数据报中的数据由换行符分隔 服务器启动时的引导代码如下所示 SE
  • 如何向 NuGet 包添加 Unity 支持?

    如何将包发布到支持 Unity 游戏引擎 的 NuGet 另外 我是否需要安装 Unity 来编译它 或者针对特定的框架版本就足够了 如何将包发布到支持 Unity 游戏引擎 的 NuGet 只需按照以下说明进行操作即可the doc ht
  • Spring MVC:如何修改从spring控制器发送的响应?

    我有一个使用 Spring MVC 3 1 3 的应用程序和使用 Dojo 1 4 开发的 UI 该应用程序有几个控制器来处理通过上传的二进制文件dojo io iframe send 控制器发送一个 json 响应 该响应必须用
  • 面板未获得焦点

    我继续在我的简单图形程序中 使用 C 编写某种键盘导航 而我又遇到了麻烦 我的问题是我想处理键盘输入以移动图层 用鼠标移动图层已经可以很好地工作 但控件没有获得焦点 此控件既不会触发 KeyUp KeyDown KeyPress 也不会触发
  • 使用 Zend 框架进行连接更新

    我试图在 mysql 上使用 zend 更新带有连接的表 下面是我想通过 zend 执行的查询 已经谢谢了 UPDATE tbproduto LEFT JOIN SELECT codigo as codTipoProduto cdTipo
  • 如何从.Net Core 3创建Windows服务[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近我需要将 Net Core 3 0控制台应用程序转换为Windows服务 由于我不需要将此流程移植
  • Gif 帧持续时间似乎比预期慢

    我正在使用枕头图像库创建 GIF 我遇到了一个问题 我试图以尽可能最小的帧持续时间使某些帧闪烁得非常快 但是当我将帧的持续时间设置为 1 可能的最低持续时间 GIF 的持续时间为 100 实际上它的持续时间似乎比预期的要长 我用一个简单的方
  • 如何使一个 跨越两列表中的两列?

    如何使用 HTML 和 CSS 创建像上面示例一样的表格 我尝试过以下方法 table tr td style width 50 TEXT td td style width 50 TEXT td tr tr td style width
  • 以编程方式创建 UITableView

    我在 Xcode 4 6 中有一个使用故事板的应用程序 我将 UITableView 添加到视图控制器类中 它按预期工作 然而 当我尝试删除故事板中的 UITableView 并以编程方式将其添加回同一个类时 我遇到了两个具体问题 1 虽然
  • 具有自定义身份验证的 ASP.NET Web API

    我正在寻求帮助创建具有自定义用户名 密码身份验证的 Web API 我有自己的数据库来验证用户 我不想使用 Windows 身份验证 我希望能够用类似的属性来装饰我的 Web api 调用 Authorize 这样在未登录的情况下进行的调用
  • VSCode:无法导入 Golang 包

    我正在 GoPath 中编写一个 Go 项目 并使用 Redigo 包连接到 Redis 服务器 应用程序运行良好 但是在 VSCode 中 包导入时出现这个烦人的错误 这导致 VSCode 无法提供智能感知建议 无法导入 github c