How do I fix VS Code error: "Not able to determine import path of current package by using cwd" for Go project

How do I fix VS Code error: "Not able to determine import path of current package by using cwd" for Go project

我正在学习教程,我想我可能错过了一些东西。

我有一个 Go 项目位于:

/Users/just_me/development/testing/golang/example_server

内容是: main.go

package main

import "fmt"

func main() {

    fmt.Println("hi world")
}

我有一个 ~/go 目录。

go env 显示:

GOPATH="/Users/just_me/go"
GOROOT="/usr/local/Cellar/go/1.12.9/libexec"

我安装了 VSCode 中建议的软件包。

当我保存 main.go 我得到:

Not able to determine import path of current package by using cwd: /Users/just_me/development/testing/golang/example_server and Go workspace: 
/Users/just_me/development/testing/golang/example_server>

我该如何解决这个问题?

由于您的包在 $GOPATH 之外,您可能需要创建一个模块文件。

您需要使用

初始化您的 go 模块
go mod init your.import/path

将导入路径更改为您喜欢的任何路径。 这样您就可以显式设置导入路径,这可能有助于修复它。

生成的 go.mod 文件如下所示:

module your.import/path

go 1.14  // Your go version

因此,如果 go.mod 文件与 main.go 文件位于同一目录中,您现在可以从中导入子模块:

例如main.go:

package main

import (
   "your.import/path/somepackage" // Import package from a subdirectory. This only works if `go.mod` has been created as above
)

func main() {
    somepackage.SomeMethod()
}

somepackage/whatever.go中:

package somepackage

import "fmt"

func SomeMethod() {
    fmt.Println("Success!")
}

如果您使用的是 vs code,请检查是否启用了 go 和 code runner 扩展,如果启用,请尝试禁用并再次启用,如果没有,请安装并启用,并下载所有请求的包。