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 扩展,如果启用,请尝试禁用并再次启用,如果没有,请安装并启用,并下载所有请求的包。
我正在学习教程,我想我可能错过了一些东西。
我有一个 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 扩展,如果启用,请尝试禁用并再次启用,如果没有,请安装并启用,并下载所有请求的包。