Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Go Package Conflict

I am new to Go and AppEngine. I am trying to figure out how to create packages but I keep running into conflicts. My directory structure is below:

GOPATH
 third-party-libs 
 app 
  app.yaml
  controllers
     default.go -- package controllers
   models
     models.go -- package models
   templates
     templates.go  -- package templates

I am importing the templates package as follows import ("app/templates") inside default.go

When I do goapp serve I get this error:

Failed parsing input: app file templates.go conflicts with 
same file imported from GOPATH

I have tried a bunch of things and nothing has worked so far. These are things I have tried:

  1. Changed the templates directory to apptemplates and the corresponding file to apptemplates.go, changed package name to apptemplates. I imported it as app/apptemplates

  2. I tried different combinations by changing the file name but not the package name, vice versa, etc. Either it does not find the file or has a conflict.

  3. I am importing html/template in my templates.go file. So I commented out the entire file just keeping the package declaration but did not make the conflict go away

I thought may be another file is named templates.go but when I do this (at the GOPATH level) find . -name "*.go" | grep "templates.go" I only see the one file I have created.

I am confused as to how packages are created. I have changed the name to something generic so it does not look like a naming issue. Can someone please tell me how I can debug this error?

Thanks!

like image 433
Ecognium Avatar asked Dec 30 '25 21:12

Ecognium


1 Answers

Rename the package to a non-conflicting name as in #1. Import the package using the path "apptemplates".

Packages inside of the application directory (the directory containing app.yaml) are imported with a path relative to the application directory. See Organizing Go Apps for the complete details.


Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!