Go 如何修复VS代码错误:";无法使用cwd“确定当前包的导入路径”;围棋项目

Go 如何修复VS代码错误:";无法使用cwd“确定当前包的导入路径”;围棋项目,go,visual-studio-code,vscode-settings,Go,Visual Studio Code,Vscode Settings,我正在学习教程,我想我可能错过了一些东西 我有一个Go项目,位于: /Users/just_me/development/testing/golang/example_server 内容包括: main.go package main import "fmt" func main() { fmt.Println("hi world") } 我有一个~/go目录 围棋环境秀: GOPATH="/Users/just_me/go" GOROOT="/usr/local/Cellar/

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

我有一个Go项目,位于:

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

内容包括:
main.go

package main

import "fmt"

func main() {

    fmt.Println("hi world")
}
我有一个
~/go
目录

围棋环境秀:

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()
}
package somepackage

import "fmt"

func SomeMethod() {
    fmt.Println("Success!")
}
somepackage/whatever.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()
}
package somepackage

import "fmt"

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

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

在Windows上,不支持斜杠:C:\Projects\Tests\go\CallbackTest>go mod init/Projects/Tests/go/CallbackTest go:格式错误的导入路径“/Projects/Tests/Go/CallbackTest”:路径元素为空。此外,还不清楚它应该是什么路径。不幸的是,仅指定最后一部分(CallbackTest)即可创建.mod文件,但这并不能解决VS代码中的问题。@EugeneMayevski'回调您的第一个路径元素为空(第一个/之前的一个)这就是它不起作用的原因。当您更改它并重新启动语言服务器/重新加载VSCode窗口时会发生什么情况(它似乎经常与Go模块有问题)?感谢您的解释!不幸的是,重新启动并不能解决任何问题。我以“回调/回调测试”结束“作为模块名。在VSCode日志中获得以下信息:开始在c:\Projects\Tests\Go\CallbackTest处构建当前包无法使用cwd确定当前包的导入路径:c:\Projects\Tests\Go\CallbackTest和Go workspace:即,在重新启动VS代码后,我没有任何更改。