如何修复 delve "can't load package: package internal" 错误

How to fix delve "can't load package: package internal" error

所以我在我的 windows 机器上安装了 VSCODE 作为我的主要 golang IDE 我想我对围棋知识的整体缺乏让我遇到了这个看似无法解决的错误: 我安装了 delve 并想将它用作 vscode-go 中的调试器。我做了 https://github.com/Microsoft/vscode-go 自述文件中提到的所有操作,但由于某些原因,当我 运行 dlv 调试时出现错误 "can't load package: package internal: no buildable Go source files in c:\go\src\internal exit status 1"。我在互联网上找不到与此文件夹相关的任何内容,但我自己从未在任何配置文件中输入 src/internal 的路径。所以这让我真的很困惑,因为我认为如果它是一个普通文件夹,那么至少应该有人遇到过一次同样的错误。

它同时出现在 vscode 和命令提示符中,如果 dlv 测试是 运行。我也知道这不是我的文件夹 structure/env 变量的问题,因为它抱怨我的包文件也丢失了,如果我删除它们除了也会给出相同的 c:\go\src\internal 错误。似乎某处也有一个设置来检查该文件夹中的源文件,但我找不到该设置,并且 dlv 调试在给我错误后崩溃。

如果 Go 安装正确,此错误消息表示您正在尝试导入名为 "internal"

的外部包

编译一个没有导入的空程序,看看问题是否仍然存在,例如。

package main

func main() {
}

您应该不会在此处看到任何错误。如果您这样做,则很可能表明 Go 未正确安装。

与最新的 delve 和 vscode:

有同样的问题

can't load package: package internal: no buildable Go source files in C:\Coding\Go\src\internal

和'go build'工作没有任何错误

必须回退到以前版本的 delve 才能使其正常工作。似乎 delve 破坏了某些东西或只需要更新一些东西。似乎只需替换 %GOPATH%\bin 文件夹中的 dlv.exe 就足够了。我没有分享我的版本,因为它是 exe,但你可以找到它或从源代码构建它

我通过更改 launch.json 文件解决了我的问题,看起来是同样的问题。

// before
"program": "${workspaceRoot}

// after changing 
"program": "${workspaceRoot}/src/github.com/myproje/hello",

同样的问题 (vscode/linux/go1.8) 解决方案:

change in launch.json > 
 "program": "${fileDirname}"

我遇到了同样的问题。当我检查时,{fileDirName} 指向我的 .vscode 文件夹。所以我刚刚手动给出了我的路径并且它有效。

我已经替换了这个

"program": "${fileDirname}"

用这个

"program": "c:/Go/src/MyGoProject"