【问题标题】:Go Package ConflictGo 包冲突
【发布时间】:2015-01-19 20:39:57
【问题描述】:

我是 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" 我只看到我创建的一个文件。

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

谢谢!

【问题讨论】:

标签: google-app-engine go


【解决方案1】:

将包重命名为不冲突的名称,如 #1。使用路径“apptemplates”导入包。

应用程序目录(包含 app.yaml 的目录)内的包使用相对于应用程序目录的路径导入。详情请参阅Organizing Go Apps

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
  • 2019-02-10
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多