我正在尝试Go的新模块系统,并且无法访问本地软件包.以下项目位于我的gopath外部桌面上的文件夹中.
我的项目结构如下:
/
- /platform
- platform.go
- main.go
- go.mod
Run Code Online (Sandbox Code Playgroud)
// platform.go
package platform
import "fmt"
func Print() {
fmt.Println("Hi")
}
Run Code Online (Sandbox Code Playgroud)
// main.go
package main
import "platform"
func main() {
platform.Print()
}
Run Code Online (Sandbox Code Playgroud)
go build main.go 告诉我
cannot find module for path platform
Run Code Online (Sandbox Code Playgroud) 当我试图运行go go golang项目根路径ChaatzFeaturePhoneServer.它提示
go get
package FeaturePhoneServer/routers: unrecognized import path "FeaturePhoneServer/routers"
Run Code Online (Sandbox Code Playgroud)
我对此很困惑.它可能的原因是什么?我怎样才能找出原因并加以解决?
main.go当在之外使用Go模块(go版本> = 1.11)时,找不到在本地包中分解出某些代码的方法$GOPATH。
我没有导入任何需要包含的外部依赖项go.mod,我只是想在本地组织此Go模块的源代码。
文件main.go:
package main
// this import does not work
import "./stuff"
func main() {
stuff.PrintBaz()
}
Run Code Online (Sandbox Code Playgroud)
该文件./stuff/bar.go(假装为本地软件包):
package stuff
import "log"
type Bar struct {
Baz int
}
func PrintBaz() {
baz := Bar{42}
log.Printf("Bar struct: %v", baz)
}
Run Code Online (Sandbox Code Playgroud)
文件go.mod(命令go mod init foo):
module foo
go 1.12
Run Code Online (Sandbox Code Playgroud)
执行时go run main.go:
import "./stuff",那么我明白了build command-line-arguments: cannot find module for path …