去打包冲突

时间:2015-01-19 20:39:57

标签: google-app-engine 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。所以我注释掉了整个文件,只是保留了包声明,但没有让冲突消失

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

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

    谢谢!

1 个答案:

答案 0 :(得分:4)

将包重命名为非冲突名称,如#1中所示。使用路径" apptemplates"导入包。

导入应用程序目录(包含app.yaml的目录)中的包,其中包含相对于应用程序目录的路径。有关完整的详细信息,请参阅Organizing Go Apps