Go 如何修复VS代码错误:";无法使用cwd“确定当前包的导入路径”;围棋项目
我正在学习教程,我想我可能错过了一些东西 我有一个Go项目,位于: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/
/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代码后,我没有任何更改。