Go 包冲突

我是 Go 和 AppEngine 的新手。我试图弄清楚如何创建包,但我一直遇到冲突。我的目录结构如下:


GOPATH

 third-party-libs 

 app 

  app.yaml

  controllers

     default.go -- package controllers

   models

     models.go -- package models

   templates

     templates.go  -- package templates

我导入模板包如下import ("app/templates")内default.go


当我这样做时,goapp serve我收到此错误:


Failed parsing input: app file templates.go conflicts with 

same file imported from GOPATH

我已经尝试了很多东西,到目前为止没有任何效果。这些是我尝试过的事情:

  1. 改变了templates目录apptemplates和相应的文件apptemplates.go,改包名apptemplates。我将它导入为app/apptemplates

  2. 我通过更改文件名而不是包名尝试了不同的组合,反之亦然,等等。要么找不到文件,要么有冲突。

  3. 我正在导入html/template我的templates.go文件。所以我注释掉了整个文件只是保留了包声明但没有使冲突消失

我想可能是另一个文件名为 templates.go 但当我这样做时(在GOPATH级别)find . -name "*.go" | grep "templates.go"我只看到我创建的一个文件。

我对如何创建包感到困惑。我已将名称更改为通用名称,因此它看起来不像是命名问题。有人可以告诉我如何调试此错误吗?


牛魔王的故事
浏览 275回答 1
1回答

慕婉清6462132

将包重命名为不冲突的名称,如#1 所示。使用路径“apptemplates”导入包。应用程序目录(包含 app.yaml 的目录)内的包使用相对于应用程序目录的路径导入。有关完整的详细信息,请参阅组织 Go 应用程序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go