我正在试用Go的新模块系统,无法访问本地软件包。以下项目位于我的gopath外的桌面上的文件夹中。
我的项目结构如下:
/ - /platform - platform.go - main.go - go.mod
// platform.go package platform import "fmt" func Print() { fmt.Println("Hi") }
// main.go package main import "platform" func main() { platform.Print() }
go build main.go 告诉我
go build main.go
cannot find module for path platform
我强烈建议您使用go工具链,它可以解决这些问题。带vscode-go插件的Visual Studio Code非常有用。
这里的问题是Go需要相对于您$GOPATH/src或moduleimport语句的相对路径。根据您所在的位置GOPATH,导入路径也应包括该位置。在这种情况下,import语句必须在其中包含go模块路径go.mod
$GOPATH/src
module
GOPATH
go.mod
假设您的项目位于此处:
$GOPATH/src/github.com/myuser/myproject
您的导入路径应为:
import "github.com/myuser/myproject/platform"
VGO
假设您的go.mod文件为:
module example.com/myuser/myproject
import "example.com/myuser/myproject/platform"