/usr/local/go/src/
go get -u golang.org/x/vgo
import ( "github.com/julienschmidt/httprouter")
vgo build
main.go:8:2: cannot find package "github.com/julienschmidt/httprouter" in any of: /usr/local/go/src/github.com/julienschmidt/httprouter (from $GOROOT) /Users/myuser/go/src/github.com/julienschmidt/httprouter (from $GOPATH)
我了解错误,似乎正在GOPATH或GOROOT下搜索httprouter。那么,我是否还需要做其他任何事情来让vgo完成其工作,然后我才能成功运行服务器?
最佳答案
使用vgo build
这是使用vgo
的“世界,您好”的演练,包括常见错误以及如何响应它们。
$ go get -u golang.org/x/vgo
$ cd /tmp/hello # Outside of GOPATH.
$ cat main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
$ vgo build
cannot determine module root; please create a go.mod file there
go.mod
文件,以表明这是模块根目录:$ touch go.mod
$ vgo build
。vgo: cannot determine module path for source directory
/tmp/hello (outside GOPATH, no import comments)
module
中添加go.mod
语句。 import
注释。 我们现在将使用选项2,然后回到选项1。将
main.go
的第一行更改为:package main // import "my/import/path/hello"
$ vgo build
最后一次。 $ ./hello
Hello, World
注意:
go.mod
现在包含module
行(上面的选项1):$ cat go.mod
module my/import/path/hello
如果您在
GOPATH
内部,则应该不会出现第5步中的错误-vgo build
应该自动确定您在GOPATH
内部,并相应地添加module
行。使用
vgo run
(不使用vgo build
)对于此示例,让我们使用A Tour of Versioned Go (vgo)中的
hello.go
:$ go get -u golang.org/x/vgo
$ mkdir /tmp/hello2
$ curl -sS https://swtch.com/hello.go >hello.go
$ vgo run hello.go
cannot determine module root; please create a go.mod file there
$ touch go.mod
$ vgo run hello.go
vgo: resolving import "rsc.io/quote"
vgo: finding rsc.io/quote (latest)
vgo: adding rsc.io/quote v1.5.2
Hello, world.
关于go - Golang : How to use vgo?错误: “cannot find package”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50803978/