为什么Go在项目子目录中找不到导入包?

Gol*_*ewb 1 import go

当我使用 dev_appserver.py 启动应用程序时,此导入工作正常

我正在尝试重构以使用 Firestore 和 Go 1.13

app.go 内容

package main
import (
    "net/http"
    "workout"
)
Run Code Online (Sandbox Code Playgroud)

项目结构:

app.go  
|-- workout dir  
    |-- workout.go file that contains (package workout)  
Run Code Online (Sandbox Code Playgroud)

从我运行的工作目录的根目录:
$ go run *.go

app.go:15:2: cannot find package "workout" in any of:
    /usr/local/go/src/workout (from $GOROOT)
    /Users/X/go/src/workout (from $GOPATH)
Run Code Online (Sandbox Code Playgroud)
$ go run *.go workout/*.go
named files must all be in one directory; have ./ and workout/
X@MacBook-Pro Thu Oct 31 10:48:13 ~/Dropbox/go/src/workoutNew 
Run Code Online (Sandbox Code Playgroud)
$ go build   
app.go:15:2: cannot find package "workout" in any of:
    /usr/local/go/src/workout (from $GOROOT)
    /Users/X/go/src/workout (from $GOPATH)
Run Code Online (Sandbox Code Playgroud)

Bur*_*dar 7

import (
 "workout"
)
Run Code Online (Sandbox Code Playgroud)

这将尝试导入一个名为 的 stdlib 包workout

为了导入您的workout包,您应该命名您的主包(使用go mod init),例如:github.com/me/myapp,然后将workout包导入为github.com/me/myapp/workout

作为相对目录(“./workout”)导入workout也可以,但这不是推荐的方法。