go - 如何修复 VS Code 错误:Go 项目的“无法使用 cwd 确定当前包的导入路径”
问题描述
我正在关注教程,我想我可能错过了一些东西。
我有一个 Go 项目位于:
/Users/just_me/development/testing/golang/example_server
内容是:
main.go
package main
import "fmt"
func main() {
fmt.Println("hi world")
}
我有一个~/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 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!")
}
推荐阅读
- nix - 有没有办法让 pkgs 的更改渗透到整个 nix 配置中?
- django - 如何显示每个卖家的产品并使其在每次页面重新加载时都发生变化?
- python - 如何将子图与虚线边界而不是实线与 Matplotlib 连接?
- javascript - 为什么 JavaScript 在页面加载后执行函数?
- asp.net-mvc - 我正在尝试通过 sql proc 使用搜索,每次我收到未完成代码的错误并且我不知道该怎么做
- python - Pandas,将子分组数据总计汇总为合并 df 作为单独列的更快方法
- c# - 将整个二维数组相乘#
- python - 使用 networkx 对象调试复杂数据类型和序列化的 Python 建议
- intellij-idea - 为什么@complete 快捷方式在类定义中不起作用?
- utf-8 - Gmail API 发送消息 utf-8 标头