我一直在关注Google App Engine 的 Go 教程。根据教程,我应该创建一个根项目目录,所有与项目相关的源文件都应该进入这个目录。因此,我的工作区如下所示:/MyProject /router router.go /items items.go当我尝试像这样在 router.go 中引用 items.go 时:路由器import( "items")func itemsHandler(writer http.ResponseWriter, request * http.Request){ anItem := items.Item{Id: 245,Name: "Chocolate",Price: 1.50};}该应用程序无法编译,因为items is undefined现在我对 Google App Engine 上的 Go 项目应该如何组织感到非常困惑。我想知道的是我的项目目录应该位于 Go SDK 的gopath目录中还是可以位于任何地方?教程没有说明这一点。Go App Engine 项目的结构是什么?如何导入源文件?
1 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
您的问题的原因似乎是缺少src
目录。.
是的,您的项目目录应该在
GOPATH
. Go 期望目录结构遵循描述工作区的文档中所述,所有包都位于src
目录中。编译时,它会在 src 文件夹(或 pkg 如果已安装)下的 gopath 中查找包。虽然 App Engine 文档没有具体说明这一点,但我的理解是结构应该与src
结构相匹配。目录结构的一个例子是这样的:从 setting 开始
GOPATH=/myproject
。在 的目录中GOPATH
,具有以下结构(以您的一些包为例)。/src /MyApp/app.yaml /MyApp/myappmain.go /items/items.go /router/router.go
当我构建时,我通过给它 MyApp 文件夹来运行 dev appserver dev_appserver ./MyApp
我已经通过放入log.Println("<pkg>")
每个包init()
func进行了测试,并且它们都只运行一次,因为有些人表示如果结构错误,这是一个问题。
- 1 回答
- 0 关注
- 364 浏览
添加回答
举报
0/150
提交
取消